diff --git a/unit/test-json.c b/unit/test-json.c index 4c43a8cd..854b92dd 100644 --- a/unit/test-json.c +++ b/unit/test-json.c @@ -219,6 +219,35 @@ static void test_json_out_of_order(const void *data) json_contents_free(c); } +/* + * Tests that the token bounds checking works. + */ +static void test_json_larger_object(const void *data) +{ + char json[] = "{\"test1\":\"tester1\"," + "\"test2\":\"tester2\"," + "\"test3\":\"tester3\"," + "\"test4\":\"tester4\"," + "\"test5\":\"tester5\"," + "\"test6\":\"tester6\"," + "\"test7\":\"tester7\"," + "\"test8\":\"tester8\"," + "\"test9\":\"tester9\"," + "\"test10\":\"tester10\"," + "\"test11\":\"tester11\"," + "\"test12\":\"tester12\"," + "\"test13\":\"tester13\"}"; + + struct json_iter iter; + struct json_contents *c = json_contents_new(json, strlen(json)); + + json_iter_init(&iter, c); + assert(json_iter_parse(&iter, + JSON_MANDATORY("test13", JSON_STRING, NULL), + JSON_UNDEFINED)); + json_contents_free(c); +} + int main(int argc, char *argv[]) { l_test_init(&argc, &argv); @@ -229,6 +258,7 @@ int main(int argc, char *argv[]) l_test_add("json unsupported types", test_json_unsupported_types, NULL); l_test_add("json empty objects", test_json_empty_objects, NULL); l_test_add("json parse out of order", test_json_out_of_order, NULL); + l_test_add("json larger object", test_json_larger_object, NULL); return l_test_run(); }