sysObj-test.cpp 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. #include "test_common.h"
  2. TEST_START
  3. TEST(sysObj, print) {
  4. PikaObj* obj = newRootObj("test", New_PikaStdLib_SysObj);
  5. VMParameters* globals = obj_run(obj, "print('hello world')");
  6. // char* sysOut = args_getSysOut(globals->list);
  7. int errCode = args_getErrorCode(globals->list);
  8. // printf("sysout = %s\r\n", sysOut);
  9. EXPECT_STREQ(log_buff[0], "hello world\r\n");
  10. // ASSERT_STREQ("hello world", sysOut);
  11. ASSERT_EQ(0, errCode);
  12. // obj_deinit(globals);
  13. obj_deinit(obj);
  14. EXPECT_EQ(pikaMemNow(), 0);
  15. }
  16. TEST(sysObj, noMethod) {
  17. PikaObj* obj = newRootObj("test", New_PikaStdLib_SysObj);
  18. __platform_printf("BEGIN\r\n");
  19. obj_run(obj, "printttt('hello world')");
  20. // char* sysOut = args_getSysOut(globals->list);
  21. // int errCode = args_getErrorCode(globals->list);
  22. // printf("sysout = %s\r\n", sysOut);
  23. // ASSERT_EQ(1, strEqu("[error] runner: method no found.", sysOut));
  24. EXPECT_STREQ(log_buff[4], "NameError: name 'printttt' is not defined\r\n");
  25. // ASSERT_EQ(2, errCode);
  26. // obj_deinit(globals);
  27. obj_deinit(obj);
  28. EXPECT_EQ(pikaMemNow(), 0);
  29. }
  30. #if !PIKA_NANO_ENABLE
  31. TEST(sysObj, getattr) {
  32. char* lines =
  33. "class Test:\n"
  34. " def __init__(self):\n"
  35. " self.a = 1\n"
  36. "test = Test()\n"
  37. "aa = getattr(test, 'a')\n";
  38. /* init */
  39. g_PikaMemInfo.heapUsedMax = 0;
  40. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  41. /* run */
  42. __platform_printf("BEGIN\r\n");
  43. obj_run(pikaMain, lines);
  44. /* collect */
  45. int aa = obj_getInt(pikaMain, "aa");
  46. /* assert */
  47. EXPECT_EQ(1, aa);
  48. /* deinit */
  49. obj_deinit(pikaMain);
  50. EXPECT_EQ(pikaMemNow(), 0);
  51. }
  52. #endif
  53. #if !PIKA_NANO_ENABLE
  54. TEST(sysObj, setattr) {
  55. char* lines =
  56. "class Test:\n"
  57. "\n"
  58. "test = Test()\n"
  59. "setattr(test, 'a', 2)\n"
  60. "aa = test.a\n";
  61. /* init */
  62. g_PikaMemInfo.heapUsedMax = 0;
  63. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  64. /* run */
  65. __platform_printf("BEGIN\r\n");
  66. obj_run(pikaMain, lines);
  67. /* collect */
  68. int aa = obj_getInt(pikaMain, "aa");
  69. /* assert */
  70. EXPECT_EQ(2, aa);
  71. /* deinit */
  72. obj_deinit(pikaMain);
  73. EXPECT_EQ(pikaMemNow(), 0);
  74. }
  75. #endif
  76. #if !PIKA_NANO_ENABLE
  77. TEST(sysobj, print_no_end) {
  78. char* line = "print('test', end='')\n";
  79. PikaObj* self = newRootObj("root", New_PikaStdLib_SysObj);
  80. obj_run(self, line);
  81. /* collect */
  82. /* assert */
  83. EXPECT_STREQ(log_buff[0], "test");
  84. /* deinit */
  85. obj_deinit(self);
  86. EXPECT_EQ(pikaMemNow(), 0);
  87. }
  88. #endif
  89. #if !PIKA_NANO_ENABLE
  90. TEST(sysobj, print) {
  91. char* line = "print(0, ['Hi'])\n";
  92. PikaObj* self = newRootObj("root", New_PikaStdLib_SysObj);
  93. obj_run(self, line);
  94. /* collect */
  95. /* assert */
  96. EXPECT_STREQ(log_buff[0], "0 ['Hi']\r\n");
  97. /* deinit */
  98. obj_deinit(self);
  99. EXPECT_EQ(pikaMemNow(), 0);
  100. }
  101. TEST(sysobj, print2) {
  102. char* line = "print(0, ['Hi'], b'test')\n";
  103. PikaObj* self = newRootObj("root", New_PikaStdLib_SysObj);
  104. obj_run(self, line);
  105. /* collect */
  106. /* assert */
  107. EXPECT_STREQ(log_buff[0], "0 ['Hi'] b'\\x74\\x65\\x73\\x74'\r\n");
  108. /* deinit */
  109. obj_deinit(self);
  110. EXPECT_EQ(pikaMemNow(), 0);
  111. }
  112. #endif
  113. TEST(sysobj, float_str) {
  114. char* line = "float('1.1')\n";
  115. PikaObj* self = newRootObj("root", New_PikaStdLib_SysObj);
  116. obj_run(self, line);
  117. /* collect */
  118. /* assert */
  119. EXPECT_STREQ(log_buff[0], "1.100000\r\n");
  120. /* deinit */
  121. obj_deinit(self);
  122. EXPECT_EQ(pikaMemNow(), 0);
  123. }
  124. TEST_END