aboutsummaryrefslogtreecommitdiffstats
path: root/qpdf/qtest/qpdf.test
diff options
context:
space:
mode:
Diffstat (limited to 'qpdf/qtest/qpdf.test')
-rw-r--r--qpdf/qtest/qpdf.test71
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);