]> granicus.if.org Git - json-c/commitdiff
Increased the test coverage of json_object_iterator.c from 0% to 100%
authorchenguoping <chenguopingdota@163.com>
Fri, 3 Jan 2020 02:05:09 +0000 (10:05 +0800)
committerdota17 <chenguopingdota@163.com>
Tue, 14 Apr 2020 02:03:58 +0000 (10:03 +0800)
tests/CMakeLists.txt
tests/test_object_iterator.c [new file with mode: 0644]
tests/test_object_iterator.expected [new file with mode: 0644]
tests/test_object_iterator.test [new symlink]

index f18d9f322ce34b9de908851c67c3dc82eb50f528..a871573909d46a982c9c3e7192430f2666a7ec13 100644 (file)
@@ -33,7 +33,8 @@ foreach(TESTNAME
        test_set_serializer
        test_set_value
        test_util_file
-       test_visit)
+       test_visit
+       test_object_iterator)
 
 add_executable(${TESTNAME} ${TESTNAME}.c)
 add_test(NAME ${TESTNAME} COMMAND ${PROJECT_SOURCE_DIR}/tests/${TESTNAME}.test)
diff --git a/tests/test_object_iterator.c b/tests/test_object_iterator.c
new file mode 100644 (file)
index 0000000..5bc5101
--- /dev/null
@@ -0,0 +1,40 @@
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include "config.h"
+
+#include "json_object.h"
+#include "json_tokener.h"
+#include "json_object_iterator.h"
+
+int main(int atgc, char **argv)
+{
+       const char *input = "{\n\
+               \"string_of_digits\": \"123\",\n\
+               \"regular_number\": 222,\n\
+               \"decimal_number\": 99.55,\n\
+               \"boolean_true\": true,\n\
+               \"boolean_false\": false,\n\
+               \"big_number\": 2147483649,\n\
+               \"a_null\": null,\n\
+               }";
+
+       struct json_object *new_obj;
+       struct json_object_iterator it;
+       struct json_object_iterator itEnd;
+
+       it = json_object_iter_init_default();
+       new_obj = json_tokener_parse(input);
+       it = json_object_iter_begin(new_obj);
+       itEnd = json_object_iter_end(new_obj);
+
+       while (!json_object_iter_equal(&it,&itEnd)) {
+               printf("%s\n",json_object_iter_peek_name(&it));
+               printf("%s\n",json_object_to_json_string(json_object_iter_peek_value(&it)));
+               json_object_iter_next(&it);
+       }
+
+       json_object_put(new_obj);
+
+       return 0;
+}
diff --git a/tests/test_object_iterator.expected b/tests/test_object_iterator.expected
new file mode 100644 (file)
index 0000000..e56e288
--- /dev/null
@@ -0,0 +1,14 @@
+string_of_digits
+"123"
+regular_number
+222
+decimal_number
+99.55
+boolean_true
+true
+boolean_false
+false
+big_number
+2147483649
+a_null
+null
diff --git a/tests/test_object_iterator.test b/tests/test_object_iterator.test
new file mode 120000 (symlink)
index 0000000..58a13f4
--- /dev/null
@@ -0,0 +1 @@
+test_basic.test
\ No newline at end of file