| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459 |
- #include "test_common.h"
- TEST_START
- TEST(cJSON, parse_print) {
- /* init */
- pikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- char testjson[] =
- "{\n"
- "\"name\": \"mculover666\",\n"
- "\"age\": 22,\n"
- "\"weight\": 55.5,\n"
- "\"address\":\n"
- "{\n"
- " \"country\": \"China\",\n"
- " \"zip-code\": 111111\n"
- "},\n"
- "\"skill\": [\"c\", \"Java\", \"Python\"],\n"
- "\"student\": false\n"
- "}\n";
- /* run */
- obj_setStr(pikaMain, "testjson", testjson);
- obj_run(pikaMain,
- "a = pika_cjson.Parse(testjson)\n"
- "a.print()\n");
- /* collect */
- /* assert */
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- TEST(cJSON, getItem) {
- /* init */
- pikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- char testjson[] =
- "{\n"
- "\"name\": \"mculover666\",\n"
- "\"age\": 22,\n"
- "\"weight\": 55.5,\n"
- "\"address\":\n"
- "{\n"
- " \"country\": \"China\",\n"
- " \"zip-code\": 111111\n"
- "},\n"
- "\"skill\": [\"c\", \"Java\", \"Python\"],\n"
- "\"student\": false\n"
- "}\n";
- /* run */
- obj_setStr(pikaMain, "testjson", testjson);
- __platform_printf("BEGIN\r\n");
- obj_run(pikaMain,
- "a = pika_cjson.Parse(testjson)\n"
- "age = a.getObjectItem('age')\n"
- "age.print()\n");
- /* collect */
- /* assert */
- EXPECT_STREQ(log_buff[1], "BEGIN\r\n");
- EXPECT_STREQ(log_buff[0], "'22'\r\n");
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- TEST(cJSON, next) {
- /* init */
- pikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- char testjson[] =
- "{\n"
- "\"name\": \"mculover666\",\n"
- "\"age\": 22,\n"
- "\"weight\": 55.5,\n"
- "\"address\":\n"
- "{\n"
- " \"country\": \"China\",\n"
- " \"zip-code\": 111111\n"
- "},\n"
- "\"skill\": [\"c\", \"Java\", \"Python\"],\n"
- "\"student\": false\n"
- "}\n";
- /* run */
- obj_setStr(pikaMain, "testjson", testjson);
- __platform_printf("BEGIN\r\n");
- obj_run(pikaMain,
- "a = pika_cjson.Parse(testjson)\n"
- "node = a.getChild()\n"
- "for i in range(0, 3):\n"
- " node.print()\n"
- " node = node.getNext()\n"
- "\n");
- /* collect */
- EXPECT_STREQ(log_buff[3], "BEGIN\r\n");
- EXPECT_STREQ(log_buff[2], "'\"mculover666\"'\r\n");
- EXPECT_STREQ(log_buff[1], "'22'\r\n");
- EXPECT_STREQ(log_buff[0], "'55.5'\r\n");
- /* assert */
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- TEST(cJSON, next_get_value) {
- /* init */
- pikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- char testjson[] =
- "{\n"
- "\"name\": \"mculover666\",\n"
- "\"age\": 22,\n"
- "\"weight\": 55.5,\n"
- "\"address\":\n"
- "{\n"
- " \"country\": \"China\",\n"
- " \"zip-code\": 111111\n"
- "},\n"
- "\"skill\": [\"c\", \"Java\", \"Python\"],\n"
- "\"student\": false\n"
- "}\n";
- /* run */
- obj_setStr(pikaMain, "testjson", testjson);
- __platform_printf("BEGIN\r\n");
- obj_run(pikaMain,
- "a = pika_cjson.Parse(testjson)\n"
- "node = a.getChild()\n"
- "val = PikaStdData.List()\n"
- "for i in range(0, 3):\n"
- " val.append(node.getValue())\n"
- " node = node.getNext()\n"
- "for item in val:\n"
- " print(item)\n"
- "\n");
- /* collect */
- /* assert */
- EXPECT_STREQ(log_buff[3], "BEGIN\r\n");
- EXPECT_STREQ(log_buff[2], "mculover666\r\n");
- EXPECT_STREQ(log_buff[1], "22.000000\r\n");
- EXPECT_STREQ(log_buff[0], "55.500000\r\n");
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- TEST(cJSON, item) {
- /* init */
- pikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- /* run */
- __platform_printf("BEGIN\r\n");
- obj_run(pikaMain,
- "a1 = pika_cjson.Null()\n"
- "a2 = pika_cjson.True_()\n"
- "a3 = pika_cjson.False_()\n"
- "a4 = pika_cjson.Bool(True)\n"
- "a5 = pika_cjson.Number(23)\n"
- "a6 = pika_cjson.String('test')\n"
- "a7 = pika_cjson.Raw('qqq')\n"
- "a8 = pika_cjson.Array()\n"
- "a9 = pika_cjson.Object()\n"
- "\n"
- "a1.print()\n"
- "a2.print()\n"
- "a3.print()\n"
- "a4.print()\n"
- "a5.print()\n"
- "a6.print()\n"
- "a7.print()\n"
- "a8.print()\n"
- "a9.print()\n"
- "\n");
- /* collect */
- /* assert */
- EXPECT_STREQ(log_buff[9], "BEGIN\r\n");
- EXPECT_STREQ(log_buff[8], "'null'\r\n");
- EXPECT_STREQ(log_buff[7], "'true'\r\n");
- EXPECT_STREQ(log_buff[6], "'false'\r\n");
- EXPECT_STREQ(log_buff[5], "'true'\r\n");
- EXPECT_STREQ(log_buff[4], "'23'\r\n");
- EXPECT_STREQ(log_buff[3], "'\"test\"'\r\n");
- EXPECT_STREQ(log_buff[2], "'qqq'\r\n");
- EXPECT_STREQ(log_buff[1], "'[]'\r\n");
- EXPECT_STREQ(log_buff[0], "'{\n}'\r\n");
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- #if PIKA_SYNTAX_IMPORT_EX_ENABLE
- TEST(cJSON, construct) {
- /* init */
- pikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- /* run */
- __platform_printf("BEGIN\r\n");
- obj_run(pikaMain,
- "import pika_cjson as cjson\n"
- "root = cjson.Object()\n"
- "root.addItemToObject('name', cjson.String('mculover666'))\n"
- "root.addItemToObject('age', cjson.Number(22))\n"
- "root.addItemToObject('weight', cjson.Number(55.5))\n"
- "address = cjson.Object()\n"
- "address.addItemToObject('country', cjson.String('China'))\n"
- "address.addItemToObject('zip-code', cjson.String('111111'))\n"
- "root.addItemToObject('address', address)\n"
- "skill = cjson.Array()\n"
- "skill.addItemToArray(cjson.String('c'))\n"
- "skill.addItemToArray(cjson.String('Java'))\n"
- "skill.addItemToArray(cjson.String('Python'))\n"
- "root.addItemToObject('skill', skill)\n"
- "root.addItemToObject('student', cjson.False_())\n"
- "root.print()\n");
- /* collect */
- /* assert */
- EXPECT_STREQ(
- log_buff[0],
- "'{\n\t\"name\":\t\"mculover666\",\n\t\"age\":\t22,\n\t\"weight\":\t55."
- "5,\n\t\"address\":\t{\n\t\t\"country\":\t\"China\",\n\t\t\"zip-code\":"
- "\t\"111111\"\n\t},\n\t\"skill\":\t[\"c\", \"Java\", "
- "\"Python\"],\n\t\"student\":\tfalse\n}'\r\n");
- EXPECT_STREQ(log_buff[1], "BEGIN\r\n");
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- #endif
- TEST(cJSON, test1) {
- /* init */
- pikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- /* run */
- __platform_printf("BEGIN\r\n");
- pikaVM_runSingleFile(pikaMain, "../../examples/cJSON/test1.py");
- /* collect */
- /* assert */
- EXPECT_STREQ(log_buff[0],
- "'{\n\t\"data\":\t{\n\t\t\"validTime\":\t28800,\n\t\t\"token\":"
- "\t\"3E6EA1D907B9CFEB6AB1DECB5667E4A7\"\n\t},\n\t\"success\":"
- "\ttrue,\n\t\"resultCode\":\t\"0000\"\n}'\r\n");
- EXPECT_STREQ(log_buff[1], "BEGIN\r\n");
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- TEST(cJSON, test2) {
- /* init */
- pikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- /* run */
- __platform_printf("BEGIN\r\n");
- pikaVM_runSingleFile(pikaMain, "../../examples/cJSON/test2.py");
- /* collect */
- /* assert */
- EXPECT_STREQ(log_buff[0],
- "'{\n\t\"data\":\t{\n\t\t\"validTime\":\t28800,\n\t\t\"token\":"
- "\t\"3E6EA1D907B9CFEB6AB1DECB5667E4A7\"\n\t},\n\t\"success\":"
- "\ttrue,\n\t\"resultCode\":\t\"0000\"\n}'\r\n");
- EXPECT_STREQ(log_buff[1], "BEGIN\r\n");
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- #if PIKA_SYNTAX_IMPORT_EX_ENABLE
- TEST(cJSON, test3) {
- /* init */
- pikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- /* run */
- __platform_printf("BEGIN\r\n");
- pikaVM_runSingleFile(pikaMain, "../../examples/cJSON/test3.py");
- /* collect */
- /* assert */
- EXPECT_STREQ(
- log_buff[0],
- "'{\n\t\"name\":\t\"mculover666\",\n\t\"age\":\t22,\n\t\"weight\":\t55."
- "5,\n\t\"address\":\t{\n\t\t\"country\":\t\"China\",\n\t\t\"zip-code\":"
- "\t\"111111\"\n\t},\n\t\"skill\":\t[\"c\", \"Java\", "
- "\"Python\"],\n\t\"student\":\tfalse\n}'\r\n");
- EXPECT_STREQ(log_buff[1], "BEGIN\r\n");
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- #endif
- TEST(cJSON, test4) {
- /* init */
- pikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- /* run */
- __platform_printf("BEGIN\r\n");
- pikaVM_runSingleFile(pikaMain, "../../examples/cJSON/test4.py");
- /* collect */
- /* assert */
- EXPECT_STREQ(
- log_buff[0],
- "'{\n\t\"data\":\t{\n\t\t\"requestSocialInsuranceFromYangCheng\":\t\"\","
- "\n\t\t\"authenticationComparison\":\t\"no\",\n\t\t\"startupLogo\":"
- "\t\"4\",\n\t\t\"cardType\":\t\"00,01,02,03,04\",\n\t\t\"synfromhis\":"
- "\t\"no\",\n\t\t\"alarmThresholdValue\":\t\"37.2\","
- "\n\t\t\"hospitalName\":\t\"jell\",\n\t\t\"facediscernMode\":\t\"01\","
- "\n\t\t\"hospitalCode\":\t\"102\"\n\t},\n\t\"success\":\ttrue,"
- "\n\t\"resultCode\":\t\"0000\",\n\t\"time\":\t\"2022-05-20 "
- "14:10:27\",\n\t\"message\":\t\"ok\"\n}'\r\n");
- EXPECT_STREQ(log_buff[1], "BEGIN\r\n");
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- TEST(cJSON, test5) {
- /* init */
- pikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- /* run */
- __platform_printf("BEGIN\r\n");
- pikaVM_runSingleFile(pikaMain, "../../examples/cJSON/test5.py");
- /* collect */
- /* assert */
- EXPECT_STREQ(
- log_buff[0],
- "'{\n\t\"data\":\t{\n\t\t\"requestSocialInsuranceFromYangCheng\":\t\"\","
- "\n\t\t\"authenticationComparison\":\t\"no\",\n\t\t\"startupLogo\":"
- "\t\"4\",\n\t\t\"cardType\":\t\"00,01,02,03,04\",\n\t\t\"synfromhis\":"
- "\t\"no\",\n\t\t\"alarmThresholdValue\":\t\"37.2\","
- "\n\t\t\"hospitalName\":"
- "\t\"\344\275\231\346\235\255\345\206\234\350\264\270\345\270\202\345"
- "\234\272\",\n\t\t\"facediscernMode\":\t\"01\",\n\t\t\"hospitalCode\":"
- "\t\"102\"\n\t},\n\t\"success\":\ttrue,\n\t\"resultCode\":\t\"0000\","
- "\n\t\"time\":\t\"2022-05-20 "
- "14:10:27\",\n\t\"message\":"
- "\t\"\346\223\215\344\275\234\346\210\220\345\212\237\"\n}'\r\n");
- EXPECT_STREQ(log_buff[1], "BEGIN\r\n");
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- TEST(cJSON, test6) {
- /* init */
- pikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- /* run */
- __platform_printf("BEGIN\r\n");
- pikaVM_runSingleFile(pikaMain, "../../examples/cJSON/test6.py");
- /* collect */
- /* assert */
- EXPECT_STREQ(
- log_buff[0],
- "'{\n\t\"array33\":\t[\"c\", \"Java\", "
- "\"Python\"],\n\t\"data\":\t{"
- "\n\t\t\"requestSocialInsuranceFromYangCheng\":\t\"\","
- "\n\t\t\"authenticationComparison\":\t\"no\",\n\t\t\"startupLogo\":"
- "\t\"4\",\n\t\t\"cardType\":\t\"00,01,02,03,04\",\n\t\t\"synfromhis\":"
- "\t\"no\",\n\t\t\"alarmThresholdValue\":\t\"37.2\","
- "\n\t\t\"hospitalName\":"
- "\t\"\344\275\231\346\235\255\345\206\234\350\264\270\345\270\202\345"
- "\234\272\",\n\t\t\"facediscernMode\":\t\"02\",\n\t\t\"hospitalCode\":"
- "\t\"102\"\n\t},\n\t\"success\":\ttrue,\n\t\"resultCode\":\t\"0000\","
- "\n\t\"time\":\t\"2022-05-20 "
- "14:10:27\",\n\t\"message\":"
- "\t\"\346\223\215\344\275\234\346\210\220\345\212\237\"\n}'\r\n");
- EXPECT_STREQ(log_buff[1], "BEGIN\r\n");
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- TEST(cJSON, parse_failed) {
- /* init */
- pikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- char testjson[] =
- "{{\n"
- "\"name\": \"mculover666\",\n"
- "\"age\": 22,\n"
- "\"weight\": 55.5,\n"
- "\"address\":\n"
- "{\n"
- " \"country\": \"China\",\n"
- " \"zip-code\": 111111\n"
- "},\n"
- "\"skill\": [\"c\", \"Java\", \"Python\"],\n"
- "\"student\": false\n"
- "}\n";
- /* run */
- obj_setStr(pikaMain, "testjson", testjson);
- obj_run(pikaMain,
- "a = pika_cjson.Parse(testjson)\n"
- "b = pika_cjson.Parse('3')\n"
- "if None == a:\n"
- " res = True\n"
- "else:\n"
- " res = False\n"
- "if None == b:\n"
- " res2 = True\n"
- "else:\n"
- " res2 = False\n"
- "\n");
- /* collect */
- /* assert */
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- #if PIKA_SYNTAX_IMPORT_EX_ENABLE
- TEST(cJSON, test7) {
- /* init */
- pikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- /* run */
- __platform_printf("BEGIN\r\n");
- pikaVM_runSingleFile(pikaMain, "../../examples/cJSON/test7.py");
- /* collect */
- /* assert */
- EXPECT_STREQ(log_buff[0], "shopping\r\n");
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- #endif
- #if PIKA_SYNTAX_IMPORT_EX_ENABLE
- TEST(cJSON, module) {
- /* init */
- pikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- extern unsigned char pikaModules_py_a[];
- obj_linkLibrary(pikaMain, pikaModules_py_a);
- /* run */
- __platform_printf("BEGIN\r\n");
- pikaVM_run(pikaMain,
- "import cjson_test as ctest\n"
- "ctest.test_start()\n");
- /* collect */
- /* assert */
- EXPECT_STREQ(log_buff[0], "shopping\r\n");
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- #endif
- TEST_END
|