sysObj-test.cpp 3.2 KB

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