]> granicus.if.org Git - json-c/commitdiff
test: add test of 'json_object_to_json_string_length'
authorJosé Bollo <jose.bollo@iot.bzh>
Mon, 1 Aug 2016 13:04:54 +0000 (15:04 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Mon, 1 Aug 2016 13:04:54 +0000 (15:04 +0200)
The test is implied in test1.

The idea is to check that the returned lengths and strings
are identical to what is expected to return the already
tested function 'json_object_to_json_string_ext'.

Signed-off-by: José Bollo <jose.bollo@iot.bzh>
tests/test1.c

index 3cbd1860d66cff3a4db932796135052cee4975b2..05956d137d756620eff58fcff5be476f85c3c0a0 100644 (file)
@@ -28,7 +28,27 @@ static int sort_fn (const void *j1, const void *j2)
 }
 
 #ifdef TEST_FORMATTED
-#define json_object_to_json_string(obj) json_object_to_json_string_ext(obj,sflags)
+static const char *to_json_string(json_object *obj, int flags)
+{
+       size_t length;
+       char *copy;
+       const char *result;
+
+       result = json_object_to_json_string_length(obj, flags, &length);
+       copy = strndup(result, length);
+       if (copy == NULL)
+               printf("to_json_string: Allocation failed!\n");
+       else {
+               result = json_object_to_json_string_ext(obj, flags);
+               if (length != strlen(result))
+                       printf("to_json_string: Length mismatch!\n");
+               if (strcmp(copy, result) != 0)
+                       printf("to_json_string: Comparison Failed!\n");
+               free(copy);
+       }
+       return result;
+}
+#define json_object_to_json_string(obj) to_json_string(obj,sflags)
 #else
 /* no special define */
 #endif