|
|
@@ -16,6 +16,7 @@ |
|
|
|
#endif /* HAVE_UNISTD_H */ |
|
|
|
#include <sys/stat.h> |
|
|
|
#include <sys/types.h> |
|
|
|
#include <assert.h> |
|
|
|
|
|
|
|
#include "json.h" |
|
|
|
#include "json_util.h" |
|
|
@@ -28,6 +29,7 @@ static void test_read_closed(void); |
|
|
|
|
|
|
|
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 |
|
|
@@ -82,7 +84,21 @@ static void test_write_to_file() |
|
|
|
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) |
|
|
@@ -125,6 +141,8 @@ int main(int argc, char **argv) |
|
|
|
// 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; |
|
|
@@ -157,6 +175,7 @@ int main(int argc, char **argv) |
|
|
|
test_read_nonexistant(); |
|
|
|
test_read_closed(); |
|
|
|
test_write_to_file(); |
|
|
|
test_read_fd_equal(testdir); |
|
|
|
return EXIT_SUCCESS; |
|
|
|
} |
|
|
|
|
|
|
@@ -196,6 +215,7 @@ static void test_read_valid_nested_with_fd(const char *testdir) |
|
|
|
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) |
|
|
|
{ |
|
|
@@ -275,3 +295,28 @@ static void test_read_closed() |
|
|
|
"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); |
|
|
|
} |