better parse mismatch dumps
Change-Id: I51f29d509853bcdc079647e9984842e5efec080a
Reviewed-on: https://skia-review.googlesource.com/c/skcms/+/259737
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
diff --git a/tests.c b/tests.c
index 092d1ad..9a47629 100644
--- a/tests.c
+++ b/tests.c
@@ -751,10 +751,19 @@
expect(load_file(ref_filename, &ref_buf, &ref_len));
if (dump_len != ref_len || memcmp(dump_buf, ref_buf, dump_len) != 0) {
+ const char* cur = dump_buf;
+ const char* ref = ref_buf;
+ while (*cur == *ref) { cur++; ref++; }
+ size_t off = (size_t)(cur - (const char*)dump_buf);
// Write out the new data on a mismatch
fprintf(stderr, "Parse mismatch for %s:\n", filename);
fwrite(dump_buf, 1, dump_len, stderr);
fprintf(stderr, "\n");
+
+ fprintf(stderr, "Mismatch begins at offset %zu, expected '%c', got,\n", off, *ref);
+ fwrite(cur, 1, dump_len - off, stderr);
+ fprintf(stderr, "\n");
+
expect(false);
}
free(ref_buf);