sysObj-test.cpp 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. TEST(sysObj, getattr) {
  30. char* lines =
  31. "class Test:\n"
  32. " def __init__(self):\n"
  33. " self.a = 1\n"
  34. "test = Test()\n"
  35. "aa = getattr(test, 'a')\n";
  36. /* init */
  37. pikaMemInfo.heapUsedMax = 0;
  38. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  39. /* run */
  40. __platform_printf("BEGIN\r\n");
  41. obj_run(pikaMain, lines);
  42. /* collect */
  43. int aa = obj_getInt(pikaMain, "aa");
  44. /* assert */
  45. EXPECT_EQ(1, aa);
  46. /* deinit */
  47. obj_deinit(pikaMain);
  48. EXPECT_EQ(pikaMemNow(), 0);
  49. }
  50. TEST(sysObj, setattr) {
  51. char* lines =
  52. "class Test:\n"
  53. "\n"
  54. "test = Test()\n"
  55. "setattr(test, 'a', 2)\n"
  56. "aa = test.a\n";
  57. /* init */
  58. pikaMemInfo.heapUsedMax = 0;
  59. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  60. /* run */
  61. __platform_printf("BEGIN\r\n");
  62. obj_run(pikaMain, lines);
  63. /* collect */
  64. int aa = obj_getInt(pikaMain, "aa");
  65. /* assert */
  66. EXPECT_EQ(2, aa);
  67. /* deinit */
  68. obj_deinit(pikaMain);
  69. EXPECT_EQ(pikaMemNow(), 0);
  70. }