Commit 4c3c658e2594d1f1a5eab530d744d62a1f22d269

Authored by Jay Berkenbilt
1 parent 38042fa2

Fix tests with password-protected files

qpdf/qtest/encryption.test
... ... @@ -373,9 +373,9 @@ $td->runtest("show-encryption works invalid password",
373 373 $td->NORMALIZE_NEWLINES);
374 374  
375 375 my @cenc = (
376   - [11, 'hybrid-xref.pdf', "''", 'r2', "", ""],
377   - [12, 'hybrid-xref.pdf', "''", 'r3', "", ""],
378   - [15, 'hybrid-xref.pdf', "''", 'r4', "", ""],
  376 + [11, 'hybrid-xref.pdf', "''", 'r2', "", "user1"],
  377 + [12, 'hybrid-xref.pdf', "''", 'r3', "", "user2"],
  378 + [15, 'hybrid-xref.pdf', "''", 'r4', "", "user2"],
379 379 [17, 'hybrid-xref.pdf', "''", 'r5', "", "owner3"],
380 380 [18, 'hybrid-xref.pdf', "''", 'r6', "", "user4"],
381 381 [13, 'c-r2.pdf', 'user1', 'decrypt with user',
... ... @@ -404,7 +404,7 @@ foreach my $d (@cenc)
404 404 if (-f $pdf_outfile)
405 405 {
406 406 $td->runtest("check $description content",
407   - {$td->COMMAND => "qpdf-test-compare a.pdf $pdf_outfile"},
  407 + {$td->COMMAND => "qpdf-test-compare a.pdf $pdf_outfile $checkpass"},
408 408 {$td->FILE => $pdf_outfile, $td->EXIT_STATUS => 0});
409 409 }
410 410 else
... ... @@ -413,7 +413,8 @@ foreach my $d (@cenc)
413 413 # /Perms static, so we have no way to predictably create a
414 414 # /V=5 encrypted file. It's not worth adding this...the test
415 415 # suite is adequate without having a statically predictable
416   - # file.
  416 + # file. (qpdf-test-compare ignores /Perms, but it's not worth
  417 + # adding output files for these cases.)
417 418 $td->runtest("check $description",
418 419 {$td->COMMAND =>
419 420 "qpdf --check a.pdf --password=$checkpass"},
... ...
qpdf/qtest/pages-tree.test
... ... @@ -24,7 +24,7 @@ $td->runtest("linearize duplicated pages",
24 24 $td->EXIT_STATUS => 3},
25 25 $td->NORMALIZE_NEWLINES);
26 26 $td->runtest("compare files",
27   - {$td->COMMAND => "qpdf-test-compare a.pdf"},
  27 + {$td->COMMAND => "qpdf-test-compare a.pdf linearize-duplicate-page.pdf"},
28 28 {$td->FILE => "linearize-duplicate-page.pdf", $td->EXIT_STATUS => 0});
29 29 $td->runtest("extract duplicated pages",
30 30 {$td->COMMAND =>
... ...
qpdf/qtest/qpdfjob.test
... ... @@ -30,18 +30,18 @@ my @bad_json = (
30 30 "json-error"
31 31 );
32 32 my @good_json = (
33   - "choice-match",
34   - "input-file-password",
35   - "empty-input",
36   - "replace-input",
37   - "encrypt-40",
38   - "encrypt-128",
39   - "encrypt-256-with-restrictions",
40   - "add-attachments",
41   - "copy-attachments",
42   - "underlay-overlay",
43   - "underlay-overlay-password",
44   - "misc-options",
  33 + ["choice-match", ""],
  34 + ["input-file-password", "user"],
  35 + ["empty-input", ""],
  36 + ["replace-input", ""],
  37 + ["encrypt-40", "u"],
  38 + ["encrypt-128", "u"],
  39 + ["encrypt-256-with-restrictions", "u"],
  40 + ["add-attachments", ""],
  41 + ["copy-attachments", ""],
  42 + ["underlay-overlay", ""],
  43 + ["underlay-overlay-password", ""],
  44 + ["misc-options", ""],
45 45 );
46 46 my $n_tests = 11 + scalar(@bad_json) + (2 * scalar(@good_json));
47 47  
... ... @@ -56,28 +56,29 @@ foreach my $i (@bad_json)
56 56  
57 57 foreach my $i (@good_json)
58 58 {
59   - if ($i eq 'replace-input')
  59 + my ($base, $pass) = @$i;
  60 + if ($base eq 'replace-input')
60 61 {
61 62 copy("minimal.pdf", 'a.pdf');
62 63 }
63   - $td->runtest("QPDFJob good json: $i",
64   - {$td->COMMAND => "qpdf --job-json-file=job-json-$i.json"},
  64 + $td->runtest("QPDFJob good json: $base",
  65 + {$td->COMMAND => "qpdf --job-json-file=job-json-$base.json"},
65 66 {$td->STRING => "", $td->EXIT_STATUS => 0},
66 67 $td->NORMALIZE_NEWLINES);
67   - if ($i =~ m/encrypt-256/)
  68 + if ($base =~ m/encrypt-256/)
68 69 {
69   - $td->runtest("check encryption $i",
  70 + $td->runtest("check encryption $base",
70 71 {$td->COMMAND =>
71 72 "qpdf a.pdf --password=u" .
72 73 " --job-json-file=job-show-encryption.json"},
73   - {$td->FILE => "job-json-$i.out", $td->EXIT_STATUS => 0},
  74 + {$td->FILE => "job-json-$base.out", $td->EXIT_STATUS => 0},
74 75 $td->NORMALIZE_NEWLINES);
75 76 }
76 77 else
77 78 {
78   - $td->runtest("check good json $i output",
79   - {$td->COMMAND => "qpdf-test-compare a.pdf job-json-$i.pdf"},
80   - {$td->FILE => "job-json-$i.pdf", $td->EXIT_STATUS => 0});
  79 + $td->runtest("check good json $base output",
  80 + {$td->COMMAND => "qpdf-test-compare a.pdf job-json-$base.pdf $pass"},
  81 + {$td->FILE => "job-json-$base.pdf", $td->EXIT_STATUS => 0});
81 82 }
82 83 }
83 84  
... ...
qpdf/qtest/split-pages.test
... ... @@ -70,8 +70,8 @@ $td->runtest("split page with labels",
70 70 foreach my $i (qw(01-06 07-11))
71 71 {
72 72 $td->runtest("check output ($i)",
73   - {$td->FILE => "split-out-labels-$i.pdf"},
74   - {$td->FILE => "labels-split-$i.pdf"});
  73 + {$td->COMMAND => "qpdf-test-compare split-out-labels-$i.pdf labels-split-$i.pdf"},
  74 + {$td->FILE => "labels-split-$i.pdf", $td->EXIT_STATUS => 0});
75 75 }
76 76  
77 77 # See comments in TODO about these expected failures. Search for
... ... @@ -121,8 +121,8 @@ foreach my $d (@sp_cases)
121 121 my $expected = $actual;
122 122 $expected =~ s/split-out/split-exp/;
123 123 $td->runtest("check output page $i ($description)",
124   - {$td->FILE => $actual},
125   - {$td->FILE => $expected});
  124 + {$td->COMMAND => "qpdf-test-compare $actual $expected u"},
  125 + {$td->FILE => $expected, $td->EXIT_STATUS => 0});
126 126 }
127 127 }
128 128  
... ... @@ -201,8 +201,8 @@ foreach my $d (@fo_resources)
201 201 {$td->STRING => "", $td->EXIT_STATUS => 0},
202 202 $td->NORMALIZE_NEWLINES);
203 203 $td->runtest("check output ($f)",
204   - {$td->FILE => "a.pdf"},
205   - {$td->FILE => "$f-out.pdf"});
  204 + {$td->COMMAND => "qpdf-test-compare a.pdf $f-out.pdf"},
  205 + {$td->FILE => "$f-out.pdf", $td->EXIT_STATUS => 0});
206 206 if ($compare)
207 207 {
208 208 compare_pdfs($td, "$f.pdf", "a.pdf");
... ...