mirror of
https://github.com/qpdf/qpdf.git
synced 2024-11-10 23:20:58 +00:00
64 lines
2.1 KiB
Perl
64 lines
2.1 KiB
Perl
#!/usr/bin/env perl
|
|
require 5.008;
|
|
use warnings;
|
|
use strict;
|
|
|
|
unshift(@INC, '.');
|
|
require qpdf_test_helpers;
|
|
|
|
chdir("qpdf") or die "chdir testdir failed: $!\n";
|
|
|
|
require TestDriver;
|
|
|
|
cleanup();
|
|
|
|
my $td = new TestDriver('copy-foreign-objects');
|
|
|
|
my $n_tests = 11;
|
|
|
|
foreach my $d ([25, 1], [26, 2], [27, 3])
|
|
{
|
|
my ($testn, $outn) = @$d;
|
|
$td->runtest("copy objects $outn",
|
|
{$td->COMMAND => "test_driver $testn" .
|
|
" minimal.pdf copy-foreign-objects-in.pdf"},
|
|
{$td->FILE => "copy-foreign-objects-$testn.out",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
$td->runtest("check output",
|
|
{$td->FILE => "a.pdf"},
|
|
{$td->FILE => "copy-foreign-objects-out$outn.pdf"});
|
|
}
|
|
$td->runtest("copy objects error",
|
|
{$td->COMMAND => "test_driver 28" .
|
|
" copy-foreign-objects-in.pdf minimal.pdf"},
|
|
{$td->FILE => "copy-foreign-objects-errors.out",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
# Issue 449 involved indirect /Filter or /DecodeParms in streams that
|
|
# had their stream data replaced. The hand-generated
|
|
# indirect-filter.pdf file more or less reproduces the situation but
|
|
# doesn't result in the same internal error that 449 did with 10.0.1.
|
|
# The file issue-449.pdf was minimized by hand from a test case and
|
|
# does produce an internal error, though the exact reason is unclear.
|
|
# It seems to just have to do with the order in which things are
|
|
# copied.
|
|
$td->runtest("indirect filters",
|
|
{$td->COMMAND => "test_driver 69 indirect-filter.pdf"},
|
|
{$td->STRING => "test 69 done\n", $td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
foreach my $i (0, 1)
|
|
{
|
|
$td->runtest("check output",
|
|
{$td->FILE => "auto-$i.pdf"},
|
|
{$td->FILE => "indirect-filter-out-$i.pdf"});
|
|
}
|
|
$td->runtest("issue 449",
|
|
{$td->COMMAND => "test_driver 69 issue-449.pdf"},
|
|
{$td->FILE => "issue-449.out", $td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
cleanup();
|
|
$td->report($n_tests);
|