builtin-test.cpp 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. #include "test_common.h"
  2. #if PIKA_SYNTAX_SLICE_ENABLE
  3. TEST(builtin, bytes) {
  4. /* init */
  5. pikaMemInfo.heapUsedMax = 0;
  6. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  7. /* run */
  8. __platform_printf("BEGIN\r\n");
  9. pikaVM_runSingleFile(pikaMain, "../../examples/BuiltIn/bytes.py");
  10. /* collect */
  11. uint8_t* res = obj_getBytes(pikaMain, "res");
  12. /* assert */
  13. EXPECT_EQ(res[1], 1);
  14. /* deinit */
  15. obj_deinit(pikaMain);
  16. EXPECT_EQ(pikaMemNow(), 0);
  17. }
  18. #endif
  19. #if PIKA_BUILTIN_STRUCT_ENABLE
  20. TEST(builtin, type1) {
  21. /* init */
  22. pikaMemInfo.heapUsedMax = 0;
  23. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  24. /* run */
  25. __platform_printf("BEGIN\r\n");
  26. pikaVM_runSingleFile(pikaMain, "../../examples/BuiltIn/type.py");
  27. /* collect */
  28. /* assert */
  29. EXPECT_STREQ(log_buff[1], "BEGIN\r\n");
  30. EXPECT_STREQ(log_buff[0], "OK\r\n");
  31. /* deinit */
  32. obj_deinit(pikaMain);
  33. EXPECT_EQ(pikaMemNow(), 0);
  34. }
  35. #endif
  36. #if PIKA_SYNTAX_LEVEL == PIKA_SYNTAX_LEVEL_MAXIMAL
  37. TEST(builtin, seek) {
  38. /* init */
  39. pikaMemInfo.heapUsedMax = 0;
  40. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  41. /* run */
  42. __platform_printf("BEGIN\r\n");
  43. pikaVM_runSingleFile(pikaMain, "../../examples/BuiltIn/seek.py");
  44. /* collect */
  45. int len = obj_getInt(pikaMain, "len");
  46. /* assert */
  47. EXPECT_EQ(len, 3576);
  48. /* deinit */
  49. obj_deinit(pikaMain);
  50. EXPECT_EQ(pikaMemNow(), 0);
  51. }
  52. #endif
  53. #if (PIKA_SYNTAX_LEVEL == PIKA_SYNTAX_LEVEL_MAXIMAL)
  54. TEST(builtin, file2) {
  55. /* init */
  56. pikaMemInfo.heapUsedMax = 0;
  57. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  58. /* run */
  59. __platform_printf("BEGIN\r\n");
  60. pikaVM_runSingleFile(pikaMain, "../../examples/BuiltIn/file2.py");
  61. /* collect */
  62. char* s = obj_getStr(pikaMain, "s");
  63. /* assert */
  64. EXPECT_STREQ(s, "import PikaStdLib\n");
  65. /* deinit */
  66. obj_deinit(pikaMain);
  67. EXPECT_EQ(pikaMemNow(), 0);
  68. }
  69. #endif
  70. #if PIKA_SYNTAX_LEVEL == PIKA_SYNTAX_LEVEL_MAXIMAL
  71. TEST(builtin, file3) {
  72. /* init */
  73. pikaMemInfo.heapUsedMax = 0;
  74. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  75. /* run */
  76. __platform_printf("BEGIN\r\n");
  77. pikaVM_runSingleFile(pikaMain, "../../examples/BuiltIn/file3.py");
  78. /* collect */
  79. /* assert */
  80. /* deinit */
  81. obj_deinit(pikaMain);
  82. EXPECT_EQ(pikaMemNow(), 0);
  83. }
  84. #endif
  85. #if (PIKA_SYNTAX_LEVEL == PIKA_SYNTAX_LEVEL_MAXIMAL) && !PIKA_POOL_ENABLE
  86. TEST(builtin, bigfile) {
  87. /* init */
  88. pikaMemInfo.heapUsedMax = 0;
  89. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  90. /* run */
  91. __platform_printf("BEGIN\r\n");
  92. pikaVM_runSingleFile(pikaMain, "../../examples/BuiltIn/bigfile.py");
  93. /* collect */
  94. // uint8_t* b = obj_getBytes(pikaMain, "b");
  95. /* assert */
  96. /* deinit */
  97. obj_deinit(pikaMain);
  98. EXPECT_EQ(pikaMemNow(), 0);
  99. }
  100. #endif
  101. TEST(builtin, nofound) {
  102. /* init */
  103. pikaMemInfo.heapUsedMax = 0;
  104. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  105. /* run */
  106. __platform_printf("BEGIN\r\n");
  107. pikaVM_runSingleFile(pikaMain, "../../examples/BuiltIn/file_nofound.py");
  108. /* collect */
  109. /* assert */
  110. /* deinit */
  111. obj_deinit(pikaMain);
  112. EXPECT_EQ(pikaMemNow(), 0);
  113. }
  114. #if PIKA_SYNTAX_LEVEL == PIKA_SYNTAX_LEVEL_MAXIMAL
  115. TEST(builtin, callback_1) {
  116. /* init */
  117. pikaMemInfo.heapUsedMax = 0;
  118. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  119. /* run */
  120. __platform_printf("BEGIN\r\n");
  121. pikaVM_runSingleFile(pikaMain, "test/python/callback/test1.py");
  122. /* collect */
  123. /* assert */
  124. EXPECT_STREQ(log_buff[0], "b\r\n");
  125. EXPECT_STREQ(log_buff[1], "a\r\n");
  126. /* deinit */
  127. obj_deinit(pikaMain);
  128. EXPECT_EQ(pikaMemNow(), 0);
  129. }
  130. #endif
  131. #if !PIKA_NANO_ENABLE
  132. TEST(builtin, utf8) {
  133. /* init */
  134. pikaMemInfo.heapUsedMax = 0;
  135. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  136. /* run */
  137. __platform_printf("BEGIN\r\n");
  138. pikaVM_runSingleFile(pikaMain, "../../examples/BuiltIn/utf8.py");
  139. /* collect */
  140. /* assert */
  141. EXPECT_STREQ(log_buff[2], "你好,Hello, Bonjour.\r\n");
  142. EXPECT_STREQ(log_buff[1], "你好,Hello, Bonjour.\r\n");
  143. EXPECT_STREQ(log_buff[0], "Hi, Hello, Bonjour.\r\n");
  144. /* deinit */
  145. obj_deinit(pikaMain);
  146. EXPECT_EQ(pikaMemNow(), 0);
  147. }
  148. #endif