#endif /* HAVE_UNISTD_H */
#include <sys/stat.h>
#include <sys/types.h>
+#include <assert.h>
#include "json.h"
#include "json_util.h"
static void test_write_to_file();
static void stat_and_cat(const char *file);
+static void test_read_fd_equal(const char *testdir);
#ifndef PATH_MAX
#define PATH_MAX 256
if (rv == 0)
stat_and_cat(outfile3);
+ const char *outfile4 = "./test_cast.test";
+ json_object_to_file_ext(outfile4, jso, JSON_C_TO_STRING_PRETTY);
+ json_object *new_jso = NULL;
+ assert(-1 == json_object_to_file(outfile4, new_jso));
+ d = open(outfile4, O_WRONLY|O_CREAT, 0600);
+ if (d < 0)
+ {
+ printf("FAIL: unable to open %s %s\n", outfile4, strerror(errno));
+ return;
+ }
+ assert(-1 == json_object_to_fd(d, new_jso, JSON_C_TO_STRING_PRETTY));
+ close(d);
+
json_object_put(jso);
+ json_object_put(new_jso);
}
static void stat_and_cat(const char *file)
// json_object_to_file(file, obj);
// json_object_to_file_ext(file, obj, flags);
+ _json_c_strerror(0);
+ json_util_get_last_err();
_json_c_strerror_enable = 1;
const char *testdir;
test_read_nonexistant();
test_read_closed();
test_write_to_file();
+ test_read_fd_equal(testdir);
return EXIT_SUCCESS;
}
fprintf(stderr, "FAIL: unable to open %s: %s\n", filename, strerror(errno));
exit(EXIT_FAILURE);
}
+ assert(NULL == json_object_from_fd_ex(d, -2));
json_object *jso = json_object_from_fd_ex(d, 20);
if (jso != NULL)
{
"expecting NULL, EBADF, got:NULL, %s\n",
json_util_get_last_err());
}
+
+static void test_read_fd_equal(const char *testdir)
+{
+ char filename[PATH_MAX];
+ (void)snprintf(filename, sizeof(filename), "%s/valid_nested.json", testdir);
+
+ json_object *jso = json_object_from_file(filename);
+
+ assert(NULL == json_type_to_name(20));
+ int d = open(filename, O_RDONLY, 0);
+ if (d < 0)
+ {
+ fprintf(stderr,
+ "FAIL: unable to open %s: %s\n",
+ filename, strerror(errno));
+ exit(EXIT_FAILURE);
+ }
+ json_object *new_jso = json_object_from_fd(d);
+ close(d);
+
+ printf("OK: json_object_from_file(valid.json)=%s\n", json_object_to_json_string(jso));
+ printf("OK: json_object_from_fd(valid.json)=%s\n", json_object_to_json_string(new_jso));
+ json_object_put(jso);
+ json_object_put(new_jso);
+}
"foo8":"abcdefghijklmnopqrstuvwxyz",
"foo9":"abcdefghijklmnopqrstuvwxyz"
}{"foo":1234,"foo1":"abcdefghijklmnopqrstuvwxyz","foo2":"abcdefghijklmnopqrstuvwxyz","foo3":"abcdefghijklmnopqrstuvwxyz","foo4":"abcdefghijklmnopqrstuvwxyz","foo5":"abcdefghijklmnopqrstuvwxyz","foo6":"abcdefghijklmnopqrstuvwxyz","foo7":"abcdefghijklmnopqrstuvwxyz","foo8":"abcdefghijklmnopqrstuvwxyz","foo9":"abcdefghijklmnopqrstuvwxyz"}
+OK: json_object_from_file(valid.json)={ "foo": 123, "obj2": { "obj3": { "obj4": { "foo": 999 } } } }
+OK: json_object_from_fd(valid.json)={ "foo": 123, "obj2": { "obj3": { "obj4": { "foo": 999 } } } }