Browse Source
Merge pull request #447 from Alanscut/fix_encode_string_as_pointer
Fix encode_string_as_pointer
pull/454/head
Alan Wang
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
22 additions and
1 deletions
-
cJSON_Utils.c
-
tests/old_utils_tests.c
|
|
@ -173,13 +173,14 @@ static void encode_string_as_pointer(unsigned char *destination, const unsigned |
|
|
|
{ |
|
|
|
if (source[0] == '/') |
|
|
|
{ |
|
|
|
destination[0] = '~'; |
|
|
|
destination[1] = '1'; |
|
|
|
destination++; |
|
|
|
} |
|
|
|
else if (source[0] == '~') |
|
|
|
{ |
|
|
|
destination[0] = '~'; |
|
|
|
destination[1] = '1'; |
|
|
|
destination[1] = '0'; |
|
|
|
destination++; |
|
|
|
} |
|
|
|
else |
|
|
|
|
|
@ -90,6 +90,10 @@ static void misc_tests(void) |
|
|
|
/* Misc tests */ |
|
|
|
int numbers[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; |
|
|
|
cJSON *object = NULL; |
|
|
|
cJSON *object1 = NULL; |
|
|
|
cJSON *object2 = NULL; |
|
|
|
cJSON *object3 = NULL; |
|
|
|
cJSON *object4 = NULL; |
|
|
|
cJSON *nums = NULL; |
|
|
|
cJSON *num6 = NULL; |
|
|
|
char *pointer = NULL; |
|
|
@ -112,7 +116,23 @@ static void misc_tests(void) |
|
|
|
TEST_ASSERT_EQUAL_STRING("", pointer); |
|
|
|
free(pointer); |
|
|
|
|
|
|
|
object1 = cJSON_CreateObject(); |
|
|
|
object2 = cJSON_CreateString("m~n"); |
|
|
|
cJSON_AddItemToObject(object1, "m~n", object2); |
|
|
|
pointer = cJSONUtils_FindPointerFromObjectTo(object1, object2); |
|
|
|
TEST_ASSERT_EQUAL_STRING("/m~0n",pointer); |
|
|
|
free(pointer); |
|
|
|
|
|
|
|
object3 = cJSON_CreateObject(); |
|
|
|
object4 = cJSON_CreateString("m/n"); |
|
|
|
cJSON_AddItemToObject(object3, "m/n", object4); |
|
|
|
pointer = cJSONUtils_FindPointerFromObjectTo(object3, object4); |
|
|
|
TEST_ASSERT_EQUAL_STRING("/m~1n",pointer); |
|
|
|
free(pointer); |
|
|
|
|
|
|
|
cJSON_Delete(object); |
|
|
|
cJSON_Delete(object1); |
|
|
|
cJSON_Delete(object3); |
|
|
|
} |
|
|
|
|
|
|
|
static void sort_tests(void) |
|
|
|