aboutsummaryrefslogtreecommitdiffstats
path: root/qpdf/qpdfjob-ctest.c
diff options
context:
space:
mode:
Diffstat (limited to 'qpdf/qpdfjob-ctest.c')
-rw-r--r--qpdf/qpdfjob-ctest.c32
1 files changed, 30 insertions, 2 deletions
diff --git a/qpdf/qpdfjob-ctest.c b/qpdf/qpdfjob-ctest.c
index f3272aef..708d5fa6 100644
--- a/qpdf/qpdfjob-ctest.c
+++ b/qpdf/qpdfjob-ctest.c
@@ -26,6 +26,15 @@ custom_progress(int progress, void* data)
printf("%s: write progress: %d%%\n", (char const*)data, progress);
}
+static int
+custom_log(char const* data, size_t size, void* udata)
+{
+ fprintf(stderr, "|custom|");
+ fwrite(data, 1, size, stderr);
+ fflush(stderr);
+ return 0;
+}
+
static void
run_tests()
{
@@ -55,6 +64,7 @@ run_tests()
\"objectStreams\": \"generate\"\n\
}") == 0);
printf("json test passed\n");
+ fflush(stdout);
assert(qpdfjob_run_from_json("{\n\
\"inputFile\": \"xref-with-short-size.pdf\",\n\
@@ -64,10 +74,28 @@ run_tests()
\"objectStreams\": \"generate\"\n\
}") == 3);
printf("json warn test passed\n");
+ fflush(stdout);
- assert(qpdfjob_run_from_json("{\n\
+ /* Also exercise custom logger */
+ j = qpdfjob_init();
+ qpdflogger_handle l1 = qpdfjob_get_logger(j);
+ qpdflogger_handle l2 = qpdflogger_default_logger();
+ assert(qpdflogger_equal(l1, l2));
+ qpdflogger_cleanup(&l1);
+ qpdflogger_cleanup(&l2);
+ qpdflogger_handle l = qpdflogger_create();
+ qpdflogger_set_error(l, qpdf_log_dest_custom, custom_log, NULL);
+ qpdfjob_set_logger(j, l);
+ qpdflogger_handle l3 = qpdfjob_get_logger(j);
+ assert(qpdflogger_equal(l, l3));
+ qpdflogger_cleanup(&l);
+ qpdflogger_cleanup(&l3);
+
+ qpdfjob_initialize_from_json(j, "{\n\
\"inputFile\": \"nothing-there.pdf\"\n\
-}") == 2);
+}");
+ assert(qpdfjob_run(j) == 2);
+ qpdfjob_cleanup(&j);
printf("json error test passed\n");
}