Prechádzať zdrojové kódy

Rewrite test for cJSON_ParseWithOpts() to expect non-null error
pointer in error case and change code to match new expectations.

rmallins 7 rokov pred
rodič
commit
629c354390
3 zmenil súbory, kde vykonal 5 pridanie a 7 odobranie
  1. 2 4
      cJSON.c
  2. 1 1
      cJSON.h
  3. 2 2
      tests/parse_with_opts.c

+ 2 - 4
cJSON.c

@@ -1006,10 +1006,8 @@ fail:
         {
             *return_parse_end = (const char*)local_error.json + local_error.position;
         }
-        else
-        {
-            global_error = local_error;
-        }
+ 
+        global_error = local_error;
     }
 
     return NULL;

+ 1 - 1
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. */
 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. */
-/* 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);
 
 /* Render a cJSON entity to text for transfer/storage. */

+ 2 - 2
tests/parse_with_opts.c

@@ -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_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)
@@ -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_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)