network-test.cpp 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. #include "test_common.h"
  2. TEST_START
  3. #if !PIKA_NANO_ENABLE
  4. extern "C" {
  5. #include "../package/pikascript/pikascript-lib/PikaStdDevice/pika_hal.h"
  6. int pika_hal_platform_WIFI_open(pika_dev* dev, char* name) {
  7. pika_platform_printf("pika_hal_platform_WIFI_open: %s\r\n", name);
  8. return 0;
  9. }
  10. int pika_hal_platform_WIFI_close(pika_dev* dev) {
  11. return 0;
  12. }
  13. int pika_hal_platform_WIFI_ioctl_config(pika_dev* dev,
  14. pika_hal_WIFI_config* cfg) {
  15. return 0;
  16. }
  17. int pika_hal_platform_WIFI_ioctl_enable(pika_dev* dev) {
  18. pika_platform_printf(
  19. "pika_hal_platform_WIFI_ioctl_others: "
  20. "PIKA_HAL_IOCTL_WIFI_SET_ACTIVE:%d\r\n",
  21. 1);
  22. return 0;
  23. }
  24. int pika_hal_platform_WIFI_ioctl_disable(pika_dev* dev) {
  25. return 0;
  26. }
  27. int pika_hal_platform_WIFI_ioctl_others(pika_dev* dev,
  28. PIKA_HAL_IOCTL_CMD cmd,
  29. void* arg) {
  30. if (cmd == PIKA_HAL_IOCTL_WIFI_SCAN) {
  31. pika_platform_printf(
  32. "pika_hal_platform_WIFI_ioctl_others: "
  33. "PIKA_HAL_IOCTL_WIFI_SCAN\r\n");
  34. int count = 3;
  35. size_t size = sizeof(pika_hal_WIFI_scan_result) +
  36. count * sizeof(pika_hal_WIFI_record);
  37. pika_hal_WIFI_scan_result* result =
  38. (pika_hal_WIFI_scan_result*)pika_platform_malloc(size);
  39. memset(result, 0, size);
  40. result->count = count;
  41. strcpy(result->records[0].ssid, "ssid1");
  42. result->records[0].channel = 1;
  43. result->records[0].rssi = -10;
  44. result->records[0].authmode = 0;
  45. strcpy(result->records[1].ssid, "ssid2");
  46. result->records[1].channel = 2;
  47. result->records[1].rssi = -20;
  48. result->records[1].authmode = 1;
  49. strcpy(result->records[2].ssid, "ssid3");
  50. result->records[2].channel = 3;
  51. result->records[2].rssi = -30;
  52. result->records[2].authmode = 2;
  53. *(pika_hal_WIFI_scan_result**)arg = result;
  54. return 0;
  55. }
  56. if (cmd == PIKA_HAL_IOCTL_WIFI_GET_STATUS) {
  57. pika_platform_printf(
  58. "pika_hal_platform_WIFI_ioctl_others: "
  59. "PIKA_HAL_IOCTL_WIFI_GET_STATUS\r\n");
  60. *(PIKA_HAL_WIFI_STATUS*)arg = PIKA_HAL_WIFI_STATUS_GOT_IP;
  61. return 0;
  62. }
  63. if (cmd == PIKA_HAL_IOCTL_WIFI_CONNECT) {
  64. return 0;
  65. }
  66. return -1;
  67. }
  68. }
  69. TEST(network, scan) {
  70. g_PikaMemInfo.heapUsedMax = 0;
  71. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  72. extern unsigned char pikaModules_py_a[];
  73. obj_linkLibrary(pikaMain, pikaModules_py_a);
  74. /* run */
  75. __platform_printf("BEGIN\r\n");
  76. pikaVM_runSingleFile(pikaMain, "test/python/network/network_scan.py");
  77. /* assert */
  78. EXPECT_STREQ(log_buff[0],
  79. "[('ssid1', b'', 1, -10, 0, 0), ('ssid2', b'', 2, "
  80. "-20, 1, 0), ('ssid3', b'', 3, -30, 2, 0)]\r\n");
  81. EXPECT_STREQ(log_buff[1],
  82. "pika_hal_platform_WIFI_ioctl_others: "
  83. "PIKA_HAL_IOCTL_WIFI_SCAN\r\n");
  84. EXPECT_STREQ(log_buff[2],
  85. "pika_hal_platform_WIFI_ioctl_others: "
  86. "PIKA_HAL_IOCTL_WIFI_SET_ACTIVE:1\r\n");
  87. EXPECT_STREQ(log_buff[3], "pika_hal_platform_WIFI_open: WLAN0\r\n");
  88. /* deinit */
  89. obj_deinit(pikaMain);
  90. EXPECT_EQ(pikaMemNow(), 0);
  91. }
  92. TEST(network, connect) {
  93. g_PikaMemInfo.heapUsedMax = 0;
  94. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  95. extern unsigned char pikaModules_py_a[];
  96. obj_linkLibrary(pikaMain, pikaModules_py_a);
  97. /* run */
  98. __platform_printf("BEGIN\r\n");
  99. pikaVM_runSingleFile(pikaMain, "test/python/network/network_connect.py");
  100. /* assert */
  101. #if 0
  102. pika_hal_platform_WIFI_open: WLAN0
  103. pika_hal_platform_WIFI_ioctl_others: PIKA_HAL_IOCTL_WIFI_SET_ACTIVE:1
  104. pika_hal_platform_WIFI_ioctl_others: PIKA_HAL_IOCTL_WIFI_GET_STATUS
  105. 1
  106. ('192.168.1.123', '255.255.255.0', '192.168.1.1', '8.8.8.8')
  107. #endif
  108. EXPECT_STREQ(log_buff[3], "pika_hal_platform_WIFI_open: WLAN0\r\n");
  109. EXPECT_STREQ(log_buff[2],
  110. "pika_hal_platform_WIFI_ioctl_others: "
  111. "PIKA_HAL_IOCTL_WIFI_SET_ACTIVE:1\r\n");
  112. EXPECT_STREQ(log_buff[1],
  113. "pika_hal_platform_WIFI_ioctl_others: "
  114. "PIKA_HAL_IOCTL_WIFI_GET_STATUS\r\n");
  115. EXPECT_STREQ(log_buff[0], "1\r\n");
  116. /* deinit */
  117. obj_deinit(pikaMain);
  118. EXPECT_EQ(pikaMemNow(), 0);
  119. }
  120. TEST(network, config) {
  121. g_PikaMemInfo.heapUsedMax = 0;
  122. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  123. extern unsigned char pikaModules_py_a[];
  124. obj_linkLibrary(pikaMain, pikaModules_py_a);
  125. /* run */
  126. __platform_printf("BEGIN\r\n");
  127. pikaVM_runSingleFile(pikaMain, "test/python/network/network_config.py");
  128. /* assert */
  129. EXPECT_STREQ(log_buff[0], "configssid 11\r\n");
  130. /* deinit */
  131. obj_deinit(pikaMain);
  132. EXPECT_EQ(pikaMemNow(), 0);
  133. }
  134. #endif
  135. TEST_END