5 const char *strings_file = "test/test-strings";
6 const char *strings_reencoded_file = "test/test-strings-reencoded";
8 char buffer[1024], buffer2[1024];
12 f = fopen(strings_file, "rb");
14 diag("Could not open %s: %s", strings_file, strerror(errno));
17 f2 = fopen(strings_reencoded_file, "rb");
19 diag("Could not open %s: %s", strings_reencoded_file, strerror(errno));
23 while (fgets(buffer, sizeof(buffer), f)) {
24 const char *s = chomp(buffer);
28 if (expect_literal(&s, "valid ")) {
30 } else if (expect_literal(&s, "invalid ")) {
33 fail("Invalid line in test-strings: %s", buffer);
37 node = json_decode(s);
44 fail("%s is valid, but json_decode returned NULL", s);
48 if (!json_check(node, errmsg)) {
49 fail("Corrupt tree produced by json_decode: %s", errmsg);
53 reencoded = json_encode(node);
55 if (!fgets(buffer2, sizeof(buffer2), f2)) {
56 fail("test-strings-reencoded is missing this line: %s", reencoded);
61 ok(strcmp(reencoded, buffer2) == 0, "re-encode %s -> %s", s, reencoded);
65 } else if (node != NULL) {
66 fail("%s is invalid, but json_decode returned non-NULL", s);
71 if (ferror(f) || fclose(f) != 0 || ferror(f2) || fclose(f2) != 0) {
72 diag("I/O error reading test data.");