mirror of
https://github.com/DaveGamble/cJSON
synced 2025-05-06 10:07:55 +00:00
Rewrite test for cJSON_ParseWithOpts() to expect non-null error
pointer in error case and change code to match new expectations.
This commit is contained in:
parent
1b2236a9a6
commit
629c354390
4
cJSON.c
4
cJSON.c
@ -1006,11 +1006,9 @@ fail:
|
|||||||
{
|
{
|
||||||
*return_parse_end = (const char*)local_error.json + local_error.position;
|
*return_parse_end = (const char*)local_error.json + local_error.position;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
global_error = local_error;
|
global_error = local_error;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
2
cJSON.h
2
cJSON.h
@ -139,7 +139,7 @@ CJSON_PUBLIC(void) cJSON_InitHooks(cJSON_Hooks* hooks);
|
|||||||
/* Supply a block of JSON, and this returns a cJSON object you can interrogate. */
|
/* Supply a block of JSON, and this returns a cJSON object you can interrogate. */
|
||||||
CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value);
|
CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value);
|
||||||
/* ParseWithOpts allows you to require (and check) that the JSON is null terminated, and to retrieve the pointer to the final byte parsed. */
|
/* ParseWithOpts allows you to require (and check) that the JSON is null terminated, and to retrieve the pointer to the final byte parsed. */
|
||||||
/* If you supply a ptr in return_parse_end and parsing fails, then return_parse_end will contain a pointer to the error. If not, then cJSON_GetErrorPtr() does the job. */
|
/* If you supply a ptr in return_parse_end and parsing fails, then return_parse_end will contain a pointer to the error so will match cJSON_GetErrorPtr(). */
|
||||||
CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char **return_parse_end, cJSON_bool require_null_terminated);
|
CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char **return_parse_end, cJSON_bool require_null_terminated);
|
||||||
|
|
||||||
/* Render a cJSON entity to text for transfer/storage. */
|
/* Render a cJSON entity to text for transfer/storage. */
|
||||||
|
@ -46,7 +46,7 @@ static void parse_with_opts_should_handle_empty_strings(void)
|
|||||||
|
|
||||||
TEST_ASSERT_NULL(cJSON_ParseWithOpts(empty_string, &error_pointer, false));
|
TEST_ASSERT_NULL(cJSON_ParseWithOpts(empty_string, &error_pointer, false));
|
||||||
TEST_ASSERT_EQUAL_PTR(empty_string, error_pointer);
|
TEST_ASSERT_EQUAL_PTR(empty_string, error_pointer);
|
||||||
TEST_ASSERT_EQUAL_PTR(NULL, cJSON_GetErrorPtr());
|
TEST_ASSERT_EQUAL_PTR(empty_string, cJSON_GetErrorPtr());
|
||||||
}
|
}
|
||||||
|
|
||||||
static void parse_with_opts_should_handle_incomplete_json(void)
|
static void parse_with_opts_should_handle_incomplete_json(void)
|
||||||
@ -56,7 +56,7 @@ static void parse_with_opts_should_handle_incomplete_json(void)
|
|||||||
|
|
||||||
TEST_ASSERT_NULL(cJSON_ParseWithOpts(json, &parse_end, false));
|
TEST_ASSERT_NULL(cJSON_ParseWithOpts(json, &parse_end, false));
|
||||||
TEST_ASSERT_EQUAL_PTR(json + strlen(json), parse_end);
|
TEST_ASSERT_EQUAL_PTR(json + strlen(json), parse_end);
|
||||||
TEST_ASSERT_NULL(cJSON_GetErrorPtr());
|
TEST_ASSERT_EQUAL_PTR(json + strlen(json), cJSON_GetErrorPtr());
|
||||||
}
|
}
|
||||||
|
|
||||||
static void parse_with_opts_should_require_null_if_requested(void)
|
static void parse_with_opts_should_require_null_if_requested(void)
|
||||||
|
Loading…
Reference in New Issue
Block a user