aboutsummaryrefslogtreecommitdiffstats
path: root/qpdf
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2023-12-20 19:37:21 +0100
committerJay Berkenbilt <ejb@ql.org>2023-12-20 21:46:20 +0100
commit4ee393d1fa5424bc25952580b177f572e58920db (patch)
tree00ee9eb00ec6225dbbb1869f0a5ee41eb563f317 /qpdf
parent7e679ab8b68a38aae8374ef28f999afd94bf5124 (diff)
downloadqpdf-4ee393d1fa5424bc25952580b177f572e58920db.tar.zst
Remove compression from linearization tests where possible
By combining --linearize with --compress-streams=n, we ensure that no new compressed data will appear in linearized output, which makes the output independent of zlib's output. There are other tests to ensure that linearization works correctly with compression. This commit involves changing some test outputs and test code as well just updating test suites.
Diffstat (limited to 'qpdf')
-rw-r--r--qpdf/qpdf-ctest.c1
-rw-r--r--qpdf/qtest/encryption-parameters.test3
-rw-r--r--qpdf/qtest/linearize-pass1.test1
-rw-r--r--qpdf/qtest/pages-tree.test2
-rw-r--r--qpdf/qtest/qpdf/c-linearized.pdfbin10729 -> 11325 bytes
-rw-r--r--qpdf/qtest/qpdf/extra-header-lin-newline.pdfbin1334 -> 1312 bytes
-rw-r--r--qpdf/qtest/qpdf/extra-header-lin-no-newline.pdfbin1334 -> 1312 bytes
-rw-r--r--qpdf/qtest/qpdf/linearize-duplicate-page.pdfbin1899 -> 1843 bytes
-rw-r--r--qpdf/qtest/qpdf/long-id-linearized.pdfbin1338 -> 1316 bytes
-rw-r--r--qpdf/qtest/qpdf/minimal-linearize-pass1.pdfbin1274 -> 1249 bytes
-rw-r--r--qpdf/qtest/qpdf/minimal-linearized.pdfbin1310 -> 1288 bytes
-rw-r--r--qpdf/qtest/qpdf/pages-is-page-out.pdfbin1310 -> 1288 bytes
-rw-r--r--qpdf/qtest/qpdf/short-id-linearized.pdfbin1294 -> 1272 bytes
-rw-r--r--qpdf/qtest/specific-file.test3
-rw-r--r--qpdf/test_driver.cc3
15 files changed, 10 insertions, 3 deletions
diff --git a/qpdf/qpdf-ctest.c b/qpdf/qpdf-ctest.c
index ba177444..d0c60558 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 f6d852c0..eaf795f3 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 dfdd2d9b..c59dd55f 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 2ec00e29..eb416fba 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 dbe62ffe..23c11901 100644
--- a/qpdf/qtest/qpdf/c-linearized.pdf
+++ b/qpdf/qtest/qpdf/c-linearized.pdf
Binary files differ
diff --git a/qpdf/qtest/qpdf/extra-header-lin-newline.pdf b/qpdf/qtest/qpdf/extra-header-lin-newline.pdf
index 7a5ff3e6..b23c5152 100644
--- a/qpdf/qtest/qpdf/extra-header-lin-newline.pdf
+++ b/qpdf/qtest/qpdf/extra-header-lin-newline.pdf
Binary files differ
diff --git a/qpdf/qtest/qpdf/extra-header-lin-no-newline.pdf b/qpdf/qtest/qpdf/extra-header-lin-no-newline.pdf
index e115c462..da3e3e88 100644
--- a/qpdf/qtest/qpdf/extra-header-lin-no-newline.pdf
+++ b/qpdf/qtest/qpdf/extra-header-lin-no-newline.pdf
Binary files differ
diff --git a/qpdf/qtest/qpdf/linearize-duplicate-page.pdf b/qpdf/qtest/qpdf/linearize-duplicate-page.pdf
index 27a8898e..093149c1 100644
--- a/qpdf/qtest/qpdf/linearize-duplicate-page.pdf
+++ b/qpdf/qtest/qpdf/linearize-duplicate-page.pdf
Binary files differ
diff --git a/qpdf/qtest/qpdf/long-id-linearized.pdf b/qpdf/qtest/qpdf/long-id-linearized.pdf
index 2993fd30..e7bc709f 100644
--- a/qpdf/qtest/qpdf/long-id-linearized.pdf
+++ b/qpdf/qtest/qpdf/long-id-linearized.pdf
Binary files differ
diff --git a/qpdf/qtest/qpdf/minimal-linearize-pass1.pdf b/qpdf/qtest/qpdf/minimal-linearize-pass1.pdf
index e851063a..ac7d71ed 100644
--- a/qpdf/qtest/qpdf/minimal-linearize-pass1.pdf
+++ b/qpdf/qtest/qpdf/minimal-linearize-pass1.pdf
Binary files differ
diff --git a/qpdf/qtest/qpdf/minimal-linearized.pdf b/qpdf/qtest/qpdf/minimal-linearized.pdf
index 15f643d4..809f18d0 100644
--- a/qpdf/qtest/qpdf/minimal-linearized.pdf
+++ b/qpdf/qtest/qpdf/minimal-linearized.pdf
Binary files differ
diff --git a/qpdf/qtest/qpdf/pages-is-page-out.pdf b/qpdf/qtest/qpdf/pages-is-page-out.pdf
index 15f643d4..809f18d0 100644
--- a/qpdf/qtest/qpdf/pages-is-page-out.pdf
+++ b/qpdf/qtest/qpdf/pages-is-page-out.pdf
Binary files differ
diff --git a/qpdf/qtest/qpdf/short-id-linearized.pdf b/qpdf/qtest/qpdf/short-id-linearized.pdf
index ec8829d7..10ef195b 100644
--- a/qpdf/qtest/qpdf/short-id-linearized.pdf
+++ b/qpdf/qtest/qpdf/short-id-linearized.pdf
Binary files differ
diff --git a/qpdf/qtest/specific-file.test b/qpdf/qtest/specific-file.test
index fec7a803..5d77720a 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 03631eb2..3c8ce755 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();
}