module-test.cpp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #include "test_common.h"
  2. TEST(module, cmodule_import) {
  3. /* init */
  4. pikaMemInfo.heapUsedMax = 0;
  5. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  6. __platform_printf("BEGIN\r\n");
  7. /* run */
  8. obj_run(pikaMain,
  9. "from TemplateDevice import qqee\n"
  10. "mytime = qqee()\n");
  11. /* collect */
  12. /* assert */
  13. /* deinit */
  14. EXPECT_STREQ("NameError: name 'TemplateDevice.qqee' is not defined\r\n",
  15. log_buff[5]);
  16. EXPECT_STREQ("NameError: name 'qqee' is not defined\r\n", log_buff[2]);
  17. obj_deinit(pikaMain);
  18. EXPECT_EQ(pikaMemNow(), 0);
  19. }
  20. TEST(module, while_loop) {
  21. /* init */
  22. pikaMemInfo.heapUsedMax = 0;
  23. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  24. extern unsigned char pikaModules_py_a[];
  25. obj_linkLibrary(pikaMain, pikaModules_py_a);
  26. __platform_printf("BEGIN\r\n");
  27. /* run */
  28. obj_run(pikaMain,
  29. "import test_module1\n"
  30. "test_module1.while_loop()\n");
  31. /* collect */
  32. /* assert */
  33. EXPECT_STREQ("4\r\n", log_buff[0]);
  34. /* deinit */
  35. obj_deinit(pikaMain);
  36. EXPECT_EQ(pikaMemNow(), 0);
  37. }
  38. TEST(module, for_loop) {
  39. /* init */
  40. pikaMemInfo.heapUsedMax = 0;
  41. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  42. extern unsigned char pikaModules_py_a[];
  43. obj_linkLibrary(pikaMain, pikaModules_py_a);
  44. __platform_printf("BEGIN\r\n");
  45. /* run */
  46. obj_run(pikaMain,
  47. "import test_module1\n"
  48. "test_module1.for_loop()\n");
  49. /* collect */
  50. /* assert */
  51. EXPECT_STREQ("9\r\n", log_buff[0]);
  52. /* deinit */
  53. obj_deinit(pikaMain);
  54. EXPECT_EQ(pikaMemNow(), 0);
  55. }
  56. TEST(module, script) {
  57. /* init */
  58. pikaMemInfo.heapUsedMax = 0;
  59. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  60. extern unsigned char pikaModules_py_a[];
  61. obj_linkLibrary(pikaMain, pikaModules_py_a);
  62. __platform_printf("BEGIN\r\n");
  63. /* run */
  64. obj_run(pikaMain, "import test_module4\n");
  65. /* collect */
  66. /* assert */
  67. EXPECT_STREQ("imported test moulde4\r\n", log_buff[0]);
  68. /* deinit */
  69. obj_deinit(pikaMain);
  70. EXPECT_EQ(pikaMemNow(), 0);
  71. }
  72. TEST(module, __init__) {
  73. /* init */
  74. pikaMemInfo.heapUsedMax = 0;
  75. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  76. extern unsigned char pikaModules_py_a[];
  77. obj_linkLibrary(pikaMain, pikaModules_py_a);
  78. __platform_printf("BEGIN\r\n");
  79. /* run */
  80. obj_run(pikaMain, "import GTestTask\n");
  81. /* collect */
  82. /* assert */
  83. EXPECT_EQ(obj_getInt(pikaMain, "GTestTask.testval"), 8848);
  84. EXPECT_STREQ(log_buff[0], "BEGIN\r\n");
  85. /* deinit */
  86. obj_deinit(pikaMain);
  87. EXPECT_EQ(pikaMemNow(), 0);
  88. }
  89. TEST(module, __init__2) {
  90. /* init */
  91. pikaMemInfo.heapUsedMax = 0;
  92. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  93. extern unsigned char pikaModules_py_a[];
  94. obj_linkLibrary(pikaMain, pikaModules_py_a);
  95. __platform_printf("BEGIN\r\n");
  96. /* run */
  97. obj_run(pikaMain, "import GTestTask as task\n");
  98. /* collect */
  99. /* assert */
  100. EXPECT_EQ(obj_getInt(pikaMain, "task.testval"), 8848);
  101. EXPECT_STREQ(log_buff[0], "BEGIN\r\n");
  102. /* deinit */
  103. obj_deinit(pikaMain);
  104. EXPECT_EQ(pikaMemNow(), 0);
  105. }