2022-05-15 16:34:27 +00:00
|
|
|
#!/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('qpdf-json');
|
|
|
|
|
|
|
|
my $n_tests = 0;
|
|
|
|
|
|
|
|
my @badfiles = (
|
|
|
|
'no-qpdf-object',
|
|
|
|
'no-json-version',
|
|
|
|
'no-pdf-version',
|
|
|
|
'top-level-scalar',
|
|
|
|
'bad-json-version1',
|
|
|
|
'bad-json-version2',
|
|
|
|
'bad-pdf-version1',
|
|
|
|
'bad-pdf-version2',
|
|
|
|
'top-level-array',
|
|
|
|
'objects-not-dict',
|
|
|
|
'bad-object-key',
|
|
|
|
'object-not-dict',
|
|
|
|
'stream-not-dict',
|
|
|
|
'stream-dict-not-dict',
|
|
|
|
'trailer-not-dict',
|
|
|
|
'trailer-stream',
|
2022-05-15 21:38:06 +00:00
|
|
|
'missing-trailer',
|
|
|
|
'missing-objects',
|
|
|
|
'obj-key-errors',
|
2022-05-15 16:34:27 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
$n_tests += scalar(@badfiles);
|
|
|
|
|
|
|
|
foreach my $f (@badfiles)
|
|
|
|
{
|
|
|
|
$td->runtest("bad: $f",
|
|
|
|
{$td->COMMAND =>
|
|
|
|
"qpdf --create-from-json=qjson-$f.json a.pdf"},
|
|
|
|
{$td->FILE => "qjson-$f.out", $td->EXIT_STATUS => 2},
|
|
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
}
|
|
|
|
|
|
|
|
cleanup();
|
|
|
|
$td->report($n_tests);
|