From 4ee393d1fa5424bc25952580b177f572e58920db Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Wed, 20 Dec 2023 13:37:21 -0500 Subject: [PATCH] Remove compression from linearization tests where possible --- examples/qpdf-job.cc | 3 +++ examples/qpdfjob-c.c | 5 +++-- examples/qtest/qpdf-job/out.pdf | Bin 1300 -> 0 bytes qpdf/qpdf-ctest.c | 1 + qpdf/qtest/encryption-parameters.test | 3 ++- qpdf/qtest/linearize-pass1.test | 1 + qpdf/qtest/pages-tree.test | 2 +- qpdf/qtest/qpdf/c-linearized.pdf | Bin 10729 -> 0 bytes qpdf/qtest/qpdf/extra-header-lin-newline.pdf | Bin 1334 -> 0 bytes qpdf/qtest/qpdf/extra-header-lin-no-newline.pdf | Bin 1334 -> 0 bytes qpdf/qtest/qpdf/linearize-duplicate-page.pdf | Bin 1899 -> 0 bytes qpdf/qtest/qpdf/long-id-linearized.pdf | Bin 1338 -> 0 bytes qpdf/qtest/qpdf/minimal-linearize-pass1.pdf | Bin 1274 -> 0 bytes qpdf/qtest/qpdf/minimal-linearized.pdf | Bin 1310 -> 0 bytes qpdf/qtest/qpdf/pages-is-page-out.pdf | Bin 1310 -> 0 bytes qpdf/qtest/qpdf/short-id-linearized.pdf | Bin 1294 -> 0 bytes qpdf/qtest/specific-file.test | 3 ++- qpdf/test_driver.cc | 3 +++ 18 files changed, 16 insertions(+), 5 deletions(-) diff --git a/examples/qpdf-job.cc b/examples/qpdf-job.cc index be868a1..99b853e 100644 --- a/examples/qpdf-job.cc +++ b/examples/qpdf-job.cc @@ -44,6 +44,7 @@ main(int argc, char* argv[]) ->endPages() ->linearize() ->staticId() // for testing only + ->compressStreams("n") // avoid dependency on zlib output ->checkConfiguration(); j.run(); std::cout << "out1 status: " << j.getExitCode() << std::endl; @@ -63,6 +64,7 @@ main(int argc, char* argv[]) "1", "--", "--static-id", + "--compress-streams=n", // avoid dependency on zlib output nullptr}; QPDFJob j; j.initializeFromArgv(new_argv); @@ -81,6 +83,7 @@ main(int argc, char* argv[]) "outputFile": "out3.pdf", "staticId": "", "linearize": "", + "compressStreams": "n", "pages": [ { "file": ".", diff --git a/examples/qpdfjob-c.c b/examples/qpdfjob-c.c index 6252839..6dd6828 100644 --- a/examples/qpdfjob-c.c +++ b/examples/qpdfjob-c.c @@ -19,7 +19,7 @@ main(int argc, char* argv[]) { char* infile = NULL; char* outfile = NULL; - char const* new_argv[6]; + char const* new_argv[7]; int r = 0; char* p = 0; @@ -43,7 +43,8 @@ main(int argc, char* argv[]) new_argv[2] = outfile; new_argv[3] = "--linearize"; new_argv[4] = "--static-id"; /* for testing only */ - new_argv[5] = NULL; + new_argv[5] = "--compress-streams=n"; /* avoid dependency on zlib output */ + new_argv[6] = NULL; /* See qpdf-job.cc for a C++ example of using the json interface. To use that from C just like * the argv one, call qpdfjob_run_from_json instead and pass the json string as a single char diff --git a/examples/qtest/qpdf-job/out.pdf b/examples/qtest/qpdf-job/out.pdf index c432ac5..d8ac150 100644 Binary files a/examples/qtest/qpdf-job/out.pdf and b/examples/qtest/qpdf-job/out.pdf differ diff --git a/qpdf/qpdf-ctest.c b/qpdf/qpdf-ctest.c index ba17744..d0c6055 100644 --- a/qpdf/qpdf-ctest.c +++ b/qpdf/qpdf-ctest.c @@ -200,6 +200,7 @@ test05(char const* infile, char const* password, char const* outfile, char const qpdf_register_progress_reporter(qpdf, count_progress, (void*)&count); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_linearization(qpdf, QPDF_TRUE); + qpdf_set_compress_streams(qpdf, QPDF_FALSE); // Don't depend on zlib qpdf_write(qpdf); /* make sure progress reporter was called */ assert(count > 0); diff --git a/qpdf/qtest/encryption-parameters.test b/qpdf/qtest/encryption-parameters.test index f6d852c..eaf795f 100644 --- a/qpdf/qtest/encryption-parameters.test +++ b/qpdf/qtest/encryption-parameters.test @@ -37,7 +37,8 @@ foreach my $file (qw(short-id long-id)) $td->runtest("linearize $file.pdf", {$td->COMMAND => - "qpdf --deterministic-id --linearize $file.pdf a.pdf"}, + "qpdf --deterministic-id --compress-streams=n" . + " --linearize $file.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); diff --git a/qpdf/qtest/linearize-pass1.test b/qpdf/qtest/linearize-pass1.test index dfdd2d9..c59dd55 100644 --- a/qpdf/qtest/linearize-pass1.test +++ b/qpdf/qtest/linearize-pass1.test @@ -18,6 +18,7 @@ my $n_tests = 3; $td->runtest("linearize pass 1 file", {$td->COMMAND => "qpdf --linearize --static-id" . + " --compress-streams=n" . " --linearize-pass1=b.pdf minimal.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", diff --git a/qpdf/qtest/pages-tree.test b/qpdf/qtest/pages-tree.test index 2ec00e2..eb416fb 100644 --- a/qpdf/qtest/pages-tree.test +++ b/qpdf/qtest/pages-tree.test @@ -18,7 +18,7 @@ my $n_tests = 17; $td->runtest("linearize duplicated pages", {$td->COMMAND => - "qpdf --static-id --linearize" . + "qpdf --static-id --linearize --compress-streams=n" . " page_api_2.pdf a.pdf"}, {$td->FILE => "duplicate-page-warning.out", $td->EXIT_STATUS => 3}, diff --git a/qpdf/qtest/qpdf/c-linearized.pdf b/qpdf/qtest/qpdf/c-linearized.pdf index dbe62ff..23c1190 100644 Binary files a/qpdf/qtest/qpdf/c-linearized.pdf and b/qpdf/qtest/qpdf/c-linearized.pdf differ diff --git a/qpdf/qtest/qpdf/extra-header-lin-newline.pdf b/qpdf/qtest/qpdf/extra-header-lin-newline.pdf index 7a5ff3e..b23c515 100644 Binary files a/qpdf/qtest/qpdf/extra-header-lin-newline.pdf and b/qpdf/qtest/qpdf/extra-header-lin-newline.pdf differ diff --git a/qpdf/qtest/qpdf/extra-header-lin-no-newline.pdf b/qpdf/qtest/qpdf/extra-header-lin-no-newline.pdf index e115c46..da3e3e8 100644 Binary files a/qpdf/qtest/qpdf/extra-header-lin-no-newline.pdf and b/qpdf/qtest/qpdf/extra-header-lin-no-newline.pdf differ diff --git a/qpdf/qtest/qpdf/linearize-duplicate-page.pdf b/qpdf/qtest/qpdf/linearize-duplicate-page.pdf index 27a8898..093149c 100644 Binary files a/qpdf/qtest/qpdf/linearize-duplicate-page.pdf and b/qpdf/qtest/qpdf/linearize-duplicate-page.pdf differ diff --git a/qpdf/qtest/qpdf/long-id-linearized.pdf b/qpdf/qtest/qpdf/long-id-linearized.pdf index 2993fd3..e7bc709 100644 Binary files a/qpdf/qtest/qpdf/long-id-linearized.pdf and b/qpdf/qtest/qpdf/long-id-linearized.pdf differ diff --git a/qpdf/qtest/qpdf/minimal-linearize-pass1.pdf b/qpdf/qtest/qpdf/minimal-linearize-pass1.pdf index e851063..ac7d71e 100644 Binary files a/qpdf/qtest/qpdf/minimal-linearize-pass1.pdf and b/qpdf/qtest/qpdf/minimal-linearize-pass1.pdf differ diff --git a/qpdf/qtest/qpdf/minimal-linearized.pdf b/qpdf/qtest/qpdf/minimal-linearized.pdf index 15f643d..809f18d 100644 Binary files a/qpdf/qtest/qpdf/minimal-linearized.pdf and b/qpdf/qtest/qpdf/minimal-linearized.pdf differ diff --git a/qpdf/qtest/qpdf/pages-is-page-out.pdf b/qpdf/qtest/qpdf/pages-is-page-out.pdf index 15f643d..809f18d 100644 Binary files a/qpdf/qtest/qpdf/pages-is-page-out.pdf and b/qpdf/qtest/qpdf/pages-is-page-out.pdf differ diff --git a/qpdf/qtest/qpdf/short-id-linearized.pdf b/qpdf/qtest/qpdf/short-id-linearized.pdf index ec8829d..10ef195 100644 Binary files a/qpdf/qtest/qpdf/short-id-linearized.pdf and b/qpdf/qtest/qpdf/short-id-linearized.pdf differ diff --git a/qpdf/qtest/specific-file.test b/qpdf/qtest/specific-file.test index fec7a80..5d77720 100644 --- a/qpdf/qtest/specific-file.test +++ b/qpdf/qtest/specific-file.test @@ -47,7 +47,8 @@ $td->runtest("check fix-qdf idempotency", {$td->FILE => "a.pdf", $td->EXIT_STATUS => 0}); $td->runtest("pages points to page", {$td->COMMAND => - "qpdf --static-id --linearize pages-is-page.pdf a.pdf"}, + "qpdf --static-id --linearize --compress-streams=n" . + " pages-is-page.pdf a.pdf"}, {$td->FILE => "pages-is-page.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", diff --git a/qpdf/test_driver.cc b/qpdf/test_driver.cc index 03631eb..3c8ce75 100644 --- a/qpdf/test_driver.cc +++ b/qpdf/test_driver.cc @@ -1211,6 +1211,9 @@ test_32(QPDF& pdf, char const* arg2) << "linearized: " << (linearized ? "yes" : "no") << std::endl << "newline: " << (newline ? "yes" : "no") << std::endl; w.setLinearization(linearized); + if (linearized) { + w.setCompressStreams(false); // avoid dependency on zlib's output + } w.setExtraHeaderText(newline ? "%% Comment with newline\n" : "%% Comment\n% No newline"); w.write(); } -- libgit2 0.21.4