diff options
Diffstat (limited to 'test/suites/api/test_object.c')
-rw-r--r-- | test/suites/api/test_object.c | 48 |
1 files changed, 12 insertions, 36 deletions
diff --git a/test/suites/api/test_object.c b/test/suites/api/test_object.c index 01cc8fd..c5b97e3 100644 --- a/test/suites/api/test_object.c +++ b/test/suites/api/test_object.c @@ -275,11 +275,7 @@ static void test_set_nocheck() static void test_iterators() { - int i; json_t *object, *foo, *bar, *baz; - const char *iter_keys[3]; - int have_key[3] = { 0, 0, 0 }; - json_t *iter_values[3]; void *iter; if(json_object_iter(NULL)) @@ -306,50 +302,30 @@ static void test_iterators() iter = json_object_iter(object); if(!iter) fail("unable to get iterator"); - iter_keys[0] = json_object_iter_key(iter); - iter_values[0] = json_object_iter_value(iter); + if (strcmp(json_object_iter_key(iter), "a") != 0) + fail("iterating doesn't yield keys in order"); + if (json_object_iter_value(iter) != foo) + fail("iterating doesn't yield values in order"); iter = json_object_iter_next(object, iter); if(!iter) fail("unable to increment iterator"); - iter_keys[1] = json_object_iter_key(iter); - iter_values[1] = json_object_iter_value(iter); + if (strcmp(json_object_iter_key(iter), "b") != 0) + fail("iterating doesn't yield keys in order"); + if (json_object_iter_value(iter) != bar) + fail("iterating doesn't yield values in order"); iter = json_object_iter_next(object, iter); if(!iter) fail("unable to increment iterator"); - iter_keys[2] = json_object_iter_key(iter); - iter_values[2] = json_object_iter_value(iter); + if (strcmp(json_object_iter_key(iter), "c") != 0) + fail("iterating doesn't yield keys in order"); + if (json_object_iter_value(iter) != baz) + fail("iterating doesn't yield values in order"); if(json_object_iter_next(object, iter) != NULL) fail("able to iterate over the end"); - /* Check that keys have correct values */ - for (i = 0; i < 3; i++) { - if (strcmp(iter_keys[i], "a") == 0) { - if (iter_values[i] != foo) - fail("wrong value for iter key a"); - else - have_key[0] = 1; - } else if (strcmp(iter_keys[i], "b") == 0) { - if (iter_values[i] != bar) - fail("wrong value for iter key b"); - else - have_key[1] = 1; - } else if (strcmp(iter_keys[i], "c") == 0) { - if (iter_values[i] != baz) - fail("wrong value for iter key c"); - else - have_key[2] = 1; - } - } - - /* Check that we got all keys */ - for(i = 0; i < 3; i++) { - if(!have_key[i]) - fail("a key wasn't iterated over"); - } - if(json_object_iter_at(object, "foo")) fail("json_object_iter_at() succeeds for non-existent key"); |