aboutsummaryrefslogtreecommitdiffstats
path: root/qpdf/qtest/object-stream.test
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2024-01-07 21:39:45 +0100
committerJay Berkenbilt <ejb@ql.org>2024-01-07 22:06:19 +0100
commit94b4e900b21c3ce61f55e118c570782556600490 (patch)
tree896d4fb31d8f38fe32fb42a8e46a95731deab5dd /qpdf/qtest/object-stream.test
parentd54bd7b2658ae7cdef1276abe735613b1397a3bf (diff)
downloadqpdf-94b4e900b21c3ce61f55e118c570782556600490.tar.zst
Add better tests for generation > 0 with object streams
This includes an expected failure for a file with a dangling reference to an old generation.
Diffstat (limited to 'qpdf/qtest/object-stream.test')
-rw-r--r--qpdf/qtest/object-stream.test16
1 files changed, 15 insertions, 1 deletions
diff --git a/qpdf/qtest/object-stream.test b/qpdf/qtest/object-stream.test
index 22b35af4..c9fa0664 100644
--- a/qpdf/qtest/object-stream.test
+++ b/qpdf/qtest/object-stream.test
@@ -16,7 +16,7 @@ cleanup();
my $td = new TestDriver('object-stream');
-my $n_tests = 5 + (36 * 4) + (12 * 2);
+my $n_tests = 7 + (36 * 4) + (12 * 2);
my $n_compare_pdfs = 36;
for (my $n = 16; $n <= 19; ++$n)
@@ -82,8 +82,22 @@ $td->runtest("generate object streams for gen > 0",
{$td->COMMAND => "qpdf --qdf --static-id" .
" --object-streams=generate gen1.pdf a.pdf"},
{$td->STRING => "", $td->EXIT_STATUS => 0});
+# qpdf 11.8.0 -- it was discovered that qpdf was incorrectly handling
+# references to older generations of reused objects in incrementally
+# updated files.
$td->runtest("check file",
{$td->FILE => "a.pdf"},
+ {$td->FILE => "gen1.qdf"},
+ $td->EXPECT_FAILURE);
+
+$td->runtest("generate object streams for gen > 0",
+ {$td->COMMAND => "qpdf --qdf --static-id" .
+ " --object-streams=generate gen1-no-dangling.pdf a.pdf"},
+ {$td->STRING => "", $td->EXIT_STATUS => 0});
+$td->runtest("check file",
+ {$td->FILE => "a.pdf"},
+ # Intentionally compare against gen1.pdf -- should have
+ # the same results as above.
{$td->FILE => "gen1.qdf"});