diff options
Diffstat (limited to 'qpdf/qtest/qpdf.test')
-rw-r--r-- | qpdf/qtest/qpdf.test | 71 |
1 files changed, 70 insertions, 1 deletions
diff --git a/qpdf/qtest/qpdf.test b/qpdf/qtest/qpdf.test index cb1d6727..dfc92053 100644 --- a/qpdf/qtest/qpdf.test +++ b/qpdf/qtest/qpdf.test @@ -679,7 +679,7 @@ $td->runtest("check pass1 file", show_ntests(); # ---------- $td->notify("--- Inline Images ---"); -$n_tests += 2; +$n_tests += 8; # The file large-inline-image.pdf is a hand-crafted file with several # inline images of various sizes including one that is two megabytes, @@ -696,6 +696,69 @@ $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "large-inline-image.qdf"}); +$td->runtest("eof in inline image", + {$td->COMMAND => + "qpdf --qdf --static-id eof-in-inline-image.pdf a.pdf"}, + {$td->FILE => "eof-inline-qdf.out", $td->EXIT_STATUS => 3}, + $td->NORMALIZE_NEWLINES); +$td->runtest("check output", + {$td->FILE => "a.pdf"}, + {$td->FILE => "eof-in-inline-image.qdf"}); +$td->runtest("externalize eof in inline image", + {$td->COMMAND => + "qpdf --qdf --externalize-inline-images" . + " --static-id eof-in-inline-image.pdf a.pdf"}, + {$td->FILE => "eof-inline-qdf.out", $td->EXIT_STATUS => 3}, + $td->NORMALIZE_NEWLINES); +$td->runtest("check output", + {$td->FILE => "a.pdf"}, + {$td->FILE => "eof-in-inline-image-ii.qdf"}); +$td->runtest("externalize damaged image", + {$td->COMMAND => + "qpdf --externalize-inline-images" . + " --compress-streams=n --static-id" . + " damaged-inline-image.pdf a.pdf"}, + {$td->STRING => "", $td->EXIT_STATUS => 0}, + $td->NORMALIZE_NEWLINES); +$td->runtest("check output", + {$td->FILE => "a.pdf"}, + {$td->FILE => "damaged-inline-image-out.pdf"}); + +my @eii_tests = ( + ['inline-images', 80], + ['large-inline-image', 1024], + ); +$n_tests += 4 * scalar(@eii_tests); +$n_compare_pdfs += 2 * scalar(@eii_tests); + +foreach my $d (@eii_tests) +{ + my ($file, $threshold) = @$d; + $td->runtest("inline image $file (all)", + {$td->COMMAND => + "qpdf --qdf --static-id --externalize-inline-images" . + " --ii-min-bytes=0 $file.pdf a.pdf"}, + {$td->STRING => "", $td->EXIT_STATUS => 0}, + $td->NORMALIZE_NEWLINES); + $td->runtest("check output", + {$td->FILE => "a.pdf"}, + {$td->FILE => "$file-ii-all.pdf"}); + compare_pdfs("$file.pdf", "a.pdf"); + + $td->runtest("inline image $file (some)", + {$td->COMMAND => + "qpdf --qdf --static-id --externalize-inline-images" . + " --ii-min-bytes=$threshold $file.pdf a.pdf"}, + {$td->STRING => "", $td->EXIT_STATUS => 0}, + $td->NORMALIZE_NEWLINES); + $td->runtest("check output", + {$td->FILE => "a.pdf"}, + {$td->FILE => "$file-ii-some.pdf"}); + compare_pdfs("$file.pdf", "a.pdf"); +} + +# QXXXQ externalize tests with min size + show_ntests(); # ---------- $td->notify("--- Tokenizer ---"); @@ -2019,6 +2082,12 @@ my @image_opt = ( '--oi-min-width=0 --oi-min-height=0 --oi-min-area=30000'], ['small-images', 'min-area-all', '--oi-min-width=0 --oi-min-height=0 --oi-min-area=30000'], + ['large-inline-image', 'inline-images', + '--ii-min-bytes=0'], + ['large-inline-image', 'inline-images-all-size', + '--oi-min-width=0 --oi-min-height=0 --oi-min-area=0 --ii-min-bytes=0'], + ['large-inline-image', 'inline-images-keep-some', ''], + ['large-inline-image', 'inline-images-keep-all', '--keep-inline-images'], ); $n_tests += 2 * scalar(@image_opt); |