mirror of
https://github.com/json-c/json-c.git
synced 2026-04-11 00:09:06 +08:00
Add tests for the json_object_array_del_idx() function.
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user