summaryrefslogtreecommitdiffstats
path: root/qpdf/qtest/qpdf.test
diff options
context:
space:
mode:
Diffstat (limited to 'qpdf/qtest/qpdf.test')
-rw-r--r--qpdf/qtest/qpdf.test37
1 files changed, 37 insertions, 0 deletions
diff --git a/qpdf/qtest/qpdf.test b/qpdf/qtest/qpdf.test
index 006f95f0..e222f756 100644
--- a/qpdf/qtest/qpdf.test
+++ b/qpdf/qtest/qpdf.test
@@ -990,6 +990,43 @@ $td->runtest("write damaged",
show_ntests();
# ----------
+$td->notify("--- Deterministic ID Tests ---");
+$n_tests += 11;
+foreach my $d ('nn', 'ny', 'yn', 'yy')
+{
+ my $linearize = ($d =~ m/^y/);
+ my $ostream = ($d =~ m/y$/);
+ $td->runtest("deterministic ID: linearize/ostream=$d",
+ {$td->COMMAND =>
+ "qpdf -deterministic-id" .
+ ($linearize ? " -linearize" : "") .
+ " -object-streams=" . ($ostream ? "generate" : "disable") .
+ " deterministic-id-in.pdf a.pdf"},
+ {$td->STRING => "",
+ $td->EXIT_STATUS => 0});
+ $td->runtest("compare files",
+ {$td->FILE => "a.pdf"},
+ {$td->FILE => "deterministic-id-$d.pdf"});
+}
+
+$td->runtest("deterministic ID with encryption",
+ {$td->COMMAND => "qpdf -deterministic-id encrypted-with-images.pdf a.pdf"},
+ {$td->STRING => "INTERNAL ERROR: QPDFWriter::generateID" .
+ " has no data for deterministic ID." .
+ " This may happen if deterministic ID and" .
+ " file encryption are requested together.\n",
+ $td->EXIT_STATUS => 2},
+ $td->NORMALIZE_NEWLINES);
+$td->runtest("deterministic ID (C API)",
+ {$td->COMMAND =>
+ "qpdf-ctest 19 deterministic-id-in.pdf '' a.pdf"},
+ {$td->STRING => "",
+ $td->EXIT_STATUS => 0});
+$td->runtest("compare files",
+ {$td->FILE => "a.pdf"},
+ {$td->FILE => "deterministic-id-nn.pdf"});
+
+# ----------
$td->notify("--- Object Stream Tests ---");
$n_tests += (36 * 4) + (12 * 2);
$n_compare_pdfs += 36;