From 3345b25962e54e5865902d2a6ca273838b79f157 Mon Sep 17 00:00:00 2001 From: Eric Haszlakiewicz Date: Sat, 30 Apr 2016 19:09:45 +0000 Subject: [PATCH] Add tests for the json_object_array_del_idx() function. --- tests/test1.c | 71 ++++++++++++++++++++++++++++ tests/test1.expected | 19 ++++++++ tests/test1Formatted_plain.expected | 19 ++++++++ tests/test1Formatted_pretty.expected | 19 ++++++++ tests/test1Formatted_spaced.expected | 19 ++++++++ 5 files changed, 147 insertions(+) diff --git a/tests/test1.c b/tests/test1.c index c047c30..2446a10 100644 --- a/tests/test1.c +++ b/tests/test1.c @@ -33,6 +33,75 @@ static int sort_fn (const void *j1, const void *j2) /* no special define */ #endif +json_object *make_array(void); +json_object *make_array() +{ + json_object *my_array; + + my_array = json_object_new_array(); + json_object_array_add(my_array, json_object_new_int(1)); + json_object_array_add(my_array, json_object_new_int(2)); + json_object_array_add(my_array, json_object_new_int(3)); + json_object_array_put_idx(my_array, 4, json_object_new_int(5)); + json_object_array_put_idx(my_array, 3, json_object_new_int(4)); + json_object_array_put_idx(my_array, 6, json_object_new_int(7)); + + return my_array; +} + +void test_array_del_idx(void); +void test_array_del_idx() +{ + int rc; + int ii; + int orig_array_len; + json_object *my_array; +#ifdef TEST_FORMATTED + int sflags = 0; +#endif + + my_array = make_array(); + orig_array_len = json_object_array_length(my_array); + + printf("my_array=\n"); + for(ii = 0; ii < json_object_array_length(my_array); ii++) + { + json_object *obj = json_object_array_get_idx(my_array, ii); + printf("\t[%d]=%s\n", ii, json_object_to_json_string(obj)); + } + printf("my_array.to_string()=%s\n", json_object_to_json_string(my_array)); + + for (ii = 0; ii < orig_array_len; ii++) + { + rc = json_object_array_del_idx(my_array, 0, 1); + printf("after del_idx(0,1)=%d, my_array.to_string()=%s\n", + rc, json_object_to_json_string(my_array)); + } + + // One more time, with the empty array: + rc = json_object_array_del_idx(my_array, 0, 1); + printf("after del_idx(0,1)=%d, my_array.to_string()=%s\n", + rc, json_object_to_json_string(my_array)); + + json_object_put(my_array); + + // Delete all array indexes at once + my_array = make_array(); + rc = json_object_array_del_idx(my_array, 0, orig_array_len); + printf("after del_idx(0,%d)=%d, my_array.to_string()=%s\n", + orig_array_len, rc, json_object_to_json_string(my_array)); + + json_object_put(my_array); + + // Delete *more* than all array indexes at once + my_array = make_array(); + rc = json_object_array_del_idx(my_array, 0, orig_array_len + 1); + printf("after del_idx(0,%d)=%d, my_array.to_string()=%s\n", + orig_array_len + 1, rc, json_object_to_json_string(my_array)); + + json_object_put(my_array); +} + int main(int argc, char **argv) { json_object *my_string, *my_int, *my_object, *my_array; @@ -92,6 +161,8 @@ int main(int argc, char **argv) json_object_put(my_array); + test_array_del_idx(); + my_array = json_object_new_array(); json_object_array_add(my_array, json_object_new_int(3)); json_object_array_add(my_array, json_object_new_int(1)); diff --git a/tests/test1.expected b/tests/test1.expected index e9be1f2..816a8c7 100644 --- a/tests/test1.expected +++ b/tests/test1.expected @@ -19,6 +19,25 @@ my_array= [3]=null [4]=5 my_array.to_string()=[ 1, 2, 3, null, 5 ] +my_array= + [0]=1 + [1]=2 + [2]=3 + [3]=4 + [4]=5 + [5]=null + [6]=7 +my_array.to_string()=[ 1, 2, 3, 4, 5, null, 7 ] +after del_idx(0,1)=0, my_array.to_string()=[ 2, 3, 4, 5, null, 7 ] +after del_idx(0,1)=0, my_array.to_string()=[ 3, 4, 5, null, 7 ] +after del_idx(0,1)=0, my_array.to_string()=[ 4, 5, null, 7 ] +after del_idx(0,1)=0, my_array.to_string()=[ 5, null, 7 ] +after del_idx(0,1)=0, my_array.to_string()=[ null, 7 ] +after del_idx(0,1)=0, my_array.to_string()=[ 7 ] +after del_idx(0,1)=0, my_array.to_string()=[ ] +after del_idx(0,1)=-1, my_array.to_string()=[ ] +after del_idx(0,7)=0, my_array.to_string()=[ ] +after del_idx(0,8)=-1, my_array.to_string()=[ 1, 2, 3, 4, 5, null, 7 ] my_array= [0]=3 [1]=1 diff --git a/tests/test1Formatted_plain.expected b/tests/test1Formatted_plain.expected index 6b93eb7..fe68f27 100644 --- a/tests/test1Formatted_plain.expected +++ b/tests/test1Formatted_plain.expected @@ -19,6 +19,25 @@ my_array= [3]=null [4]=5 my_array.to_string()=[1,2,3,null,5] +my_array= + [0]=1 + [1]=2 + [2]=3 + [3]=4 + [4]=5 + [5]=null + [6]=7 +my_array.to_string()=[1,2,3,4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[2,3,4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[3,4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[null,7] +after del_idx(0,1)=0, my_array.to_string()=[7] +after del_idx(0,1)=0, my_array.to_string()=[] +after del_idx(0,1)=-1, my_array.to_string()=[] +after del_idx(0,7)=0, my_array.to_string()=[] +after del_idx(0,8)=-1, my_array.to_string()=[1,2,3,4,5,null,7] my_array= [0]=3 [1]=1 diff --git a/tests/test1Formatted_pretty.expected b/tests/test1Formatted_pretty.expected index 0f94b4c..85df4fc 100644 --- a/tests/test1Formatted_pretty.expected +++ b/tests/test1Formatted_pretty.expected @@ -25,6 +25,25 @@ my_array.to_string()=[ null, 5 ] +my_array= + [0]=1 + [1]=2 + [2]=3 + [3]=4 + [4]=5 + [5]=null + [6]=7 +my_array.to_string()=[1,2,3,4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[2,3,4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[3,4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[null,7] +after del_idx(0,1)=0, my_array.to_string()=[7] +after del_idx(0,1)=0, my_array.to_string()=[] +after del_idx(0,1)=-1, my_array.to_string()=[] +after del_idx(0,7)=0, my_array.to_string()=[] +after del_idx(0,8)=-1, my_array.to_string()=[1,2,3,4,5,null,7] my_array= [0]=3 [1]=1 diff --git a/tests/test1Formatted_spaced.expected b/tests/test1Formatted_spaced.expected index e9be1f2..57592f9 100644 --- a/tests/test1Formatted_spaced.expected +++ b/tests/test1Formatted_spaced.expected @@ -19,6 +19,25 @@ my_array= [3]=null [4]=5 my_array.to_string()=[ 1, 2, 3, null, 5 ] +my_array= + [0]=1 + [1]=2 + [2]=3 + [3]=4 + [4]=5 + [5]=null + [6]=7 +my_array.to_string()=[1,2,3,4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[2,3,4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[3,4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[null,7] +after del_idx(0,1)=0, my_array.to_string()=[7] +after del_idx(0,1)=0, my_array.to_string()=[] +after del_idx(0,1)=-1, my_array.to_string()=[] +after del_idx(0,7)=0, my_array.to_string()=[] +after del_idx(0,8)=-1, my_array.to_string()=[1,2,3,4,5,null,7] my_array= [0]=3 [1]=1