From b2b2a175c49c0a68018e329ee7637424d1ba3218 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Thu, 9 Dec 2021 18:34:22 -0500 Subject: Add missing unit test for register progress reporter in C API It was exercised in the pdf-linearize example but not in qpdf-ctest. --- libqpdf/qpdf-c.cc | 1 + qpdf/qpdf-ctest.c | 9 +++++++++ qpdf/qpdf.testcov | 1 + 3 files changed, 11 insertions(+) diff --git a/libqpdf/qpdf-c.cc b/libqpdf/qpdf-c.cc index a5dda2a8..063adaf2 100644 --- a/libqpdf/qpdf-c.cc +++ b/libqpdf/qpdf-c.cc @@ -828,6 +828,7 @@ void qpdf_register_progress_reporter( void (*report_progress)(int percent, void* data), void* data) { + QTC::TC("qpdf", "qpdf-c registered progress reporter"); qpdf->qpdf_writer->registerProgressReporter( new ProgressReporter(report_progress, data)); } diff --git a/qpdf/qpdf-ctest.c b/qpdf/qpdf-ctest.c index 86ddb0b9..4d30712e 100644 --- a/qpdf/qpdf-ctest.c +++ b/qpdf/qpdf-ctest.c @@ -117,6 +117,11 @@ static void read_file_into_memory(char const* filename, fclose(f); } +static void count_progress(int percent, void* data) +{ + ++(*(int*)data); +} + static void test01(char const* infile, char const* password, char const* outfile, @@ -201,11 +206,15 @@ static void test05(char const* infile, char const* outfile, char const* outfile2) { + int count = 0; qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); + qpdf_register_progress_reporter(qpdf, count_progress, (void*)&count); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_linearization(qpdf, QPDF_TRUE); qpdf_write(qpdf); + /* make sure progress reporter was called */ + assert(count > 0); report_errors(); } diff --git a/qpdf/qpdf.testcov b/qpdf/qpdf.testcov index b974af63..e3f6b00d 100644 --- a/qpdf/qpdf.testcov +++ b/qpdf/qpdf.testcov @@ -601,3 +601,4 @@ qpdf overlay page with no resources 0 QPDFObjectHandle check ownership 0 qpdf weak crypto warning 0 qpdf-c called qpdf_oh_is_initialized 0 +qpdf-c registered progress reporter 0 -- cgit v1.2.3-54-g00ecf