mirror of
https://github.com/qpdf/qpdf.git
synced 2024-09-22 10:09:06 +00:00
56 lines
1.8 KiB
Perl
56 lines
1.8 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('deterministic-id');
|
|
|
|
my $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 => "qpdf: 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 => "C test 19 done\n",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
$td->runtest("compare files",
|
|
{$td->FILE => "a.pdf"},
|
|
{$td->FILE => "deterministic-id-nn.pdf"});
|
|
|
|
cleanup();
|
|
$td->report($n_tests);
|