]> granicus.if.org Git - json-c/commitdiff
update pointer test case
authordota17 <chenguopingdota@163.com>
Mon, 30 Dec 2019 01:45:28 +0000 (09:45 +0800)
committerdota17 <chenguopingdota@163.com>
Thu, 2 Jan 2020 02:49:29 +0000 (10:49 +0800)
tests/test_json_pointer.c
tests/test_json_pointer.expected

index 231360a0a3ea049063d0f177ba3051b4216205b4..7891e219f62e0a42e2f1e327ad5ec8a6ce8e7c2d 100644 (file)
@@ -146,6 +146,8 @@ static void test_recursion_get()
        assert(json_object_is_type(jo2, json_type_string));
        assert(0 == strcmp("1", json_object_get_string(jo2)));
 
+       assert(0 == json_pointer_getf(jo1, &jo2, "%s", "\0"));
+
        printf("PASSED - GET - RECURSION TEST\n");
 
        json_object_put(jo1);
@@ -176,8 +178,14 @@ static void test_wrong_inputs_get()
        assert(0 != json_pointer_get(NULL, NULL, NULL));
        assert(errno == EINVAL);
        errno = 0;
+       assert(0 != json_pointer_getf(NULL, NULL, NULL));
+       assert(errno == EINVAL);
+       errno = 0;
        assert(0 != json_pointer_get(jo1, NULL, NULL));
        assert(errno == EINVAL);
+       errno = 0;
+       assert(0 != json_pointer_getf(jo1, NULL, NULL));
+       assert(errno == EINVAL);
        printf("PASSED - GET - NULL INPUTS\n");
 
        /* Test invalid indexes for array */
@@ -185,6 +193,9 @@ static void test_wrong_inputs_get()
        assert(0 != json_pointer_get(jo1, "/foo/a", NULL));
        assert(errno == EINVAL);
        errno = 0;
+       assert(0 != json_pointer_get(jo1, "/foo/01", NULL));
+       assert(errno == EINVAL);
+       errno = 0;
        assert(0 != json_pointer_getf(jo1, NULL, "/%s/a", "foo"));
        assert(errno == EINVAL);
        errno = 0;
@@ -258,10 +269,24 @@ static void test_wrong_inputs_set()
        printf("PASSED - SET - LOADED TEST JSON\n");
        printf("%s\n", json_object_get_string(jo1));
 
+       assert(0 != json_pointer_set(NULL, NULL, NULL));
+       assert(0 != json_pointer_setf(NULL, NULL, NULL));
+       assert(0 != json_pointer_set(&jo1, NULL, NULL));
+       assert(0 != json_pointer_setf(&jo1, NULL, NULL));
+       printf("PASSED - SET - failed with NULL params for input json & path\n");
+
        assert(0 != json_pointer_set(&jo1, "foo/bar", (jo2 = json_object_new_string("cod"))));
        printf("PASSED - SET - failed 'cod' with path 'foo/bar'\n");
        json_object_put(jo2);
 
+       assert(0 != json_pointer_setf(&jo1, (jo2 = json_object_new_string("cod")), "%s", "foo/bar"));
+       printf("PASSED - SET - failed 'cod' with path 'foo/bar'\n");
+       json_object_put(jo2);
+
+       assert(0 != json_pointer_set(&jo1, "0", (jo2 = json_object_new_string("cod"))));
+       printf("PASSED - SET - failed with invalid array index'\n");
+       json_object_put(jo2);
+
        jo2 = json_object_new_string("whatever");
        assert(0 != json_pointer_set(&jo1, "/fud/gaw", jo2));
        assert(0 == json_pointer_set(&jo1, "/fud", json_object_new_object()));
@@ -276,6 +301,8 @@ static void test_wrong_inputs_set()
        json_object_put(jo2);
        printf("PASSED - SET - failed to set index to non-array\n");
 
+       assert(0 == json_pointer_setf(&jo1, json_object_new_string("cod"), "%s", "\0"));
+
        json_object_put(jo1);
 }
 
index e77e542cc34082676b3a5e3f8c1d6d29ab198aeb..7cb158edf59b9574aa2431c01497f869ae2f83e1 100644 (file)
@@ -32,5 +32,8 @@ PASSED - SET - Final JSON is: { "foo": [ "bar", "cod" ], "": 9, "a\/b": 1, "c%d"
 10
 PASSED - SET - LOADED TEST JSON
 { "foo": [ "bar", "baz" ], "": 0, "a\/b": 1, "c%d": 2, "e^f": 3, "g|h": 4, "i\\j": 5, "k\"l": 6, " ": 7, "m~n": 8 }
+PASSED - SET - failed with NULL params for input json & path
 PASSED - SET - failed 'cod' with path 'foo/bar'
+PASSED - SET - failed 'cod' with path 'foo/bar'
+PASSED - SET - failed with invalid array index'
 PASSED - SET - failed to set index to non-array