@@ -33,6 +33,75 @@ static int sort_fn (const void *j1, const void *j2) | |||||
/* no special define */ | /* no special define */ | ||||
#endif | #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) | int main(int argc, char **argv) | ||||
{ | { | ||||
json_object *my_string, *my_int, *my_object, *my_array; | 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); | json_object_put(my_array); | ||||
test_array_del_idx(); | |||||
my_array = json_object_new_array(); | 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(3)); | ||||
json_object_array_add(my_array, json_object_new_int(1)); | json_object_array_add(my_array, json_object_new_int(1)); | ||||
@@ -19,6 +19,25 @@ my_array= | |||||
[3]=null | [3]=null | ||||
[4]=5 | [4]=5 | ||||
my_array.to_string()=[ 1, 2, 3, null, 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= | my_array= | ||||
[0]=3 | [0]=3 | ||||
[1]=1 | [1]=1 | ||||
@@ -19,6 +19,25 @@ my_array= | |||||
[3]=null | [3]=null | ||||
[4]=5 | [4]=5 | ||||
my_array.to_string()=[1,2,3,null,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= | my_array= | ||||
[0]=3 | [0]=3 | ||||
[1]=1 | [1]=1 | ||||
@@ -25,6 +25,25 @@ my_array.to_string()=[ | |||||
null, | null, | ||||
5 | 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= | my_array= | ||||
[0]=3 | [0]=3 | ||||
[1]=1 | [1]=1 | ||||
@@ -19,6 +19,25 @@ my_array= | |||||
[3]=null | [3]=null | ||||
[4]=5 | [4]=5 | ||||
my_array.to_string()=[ 1, 2, 3, null, 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= | my_array= | ||||
[0]=3 | [0]=3 | ||||
[1]=1 | [1]=1 | ||||