aboutsummaryrefslogtreecommitdiffstats
path: root/examples/qtest
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2023-12-16 15:46:44 +0100
committerJay Berkenbilt <ejb@ql.org>2023-12-16 16:06:34 +0100
commitd7a364b882be44c93dc4a843bcca2ae63e805c2c (patch)
tree5ead7b212c27368b8411ae0db0d072bec5747e7a /examples/qtest
parent924ebf9f6abb1b682bfde18f537c6f336fc72c82 (diff)
downloadqpdf-d7a364b882be44c93dc4a843bcca2ae63e805c2c.tar.zst
Allow regular C++ functions to interoperate with the C API
Diffstat (limited to 'examples/qtest')
-rw-r--r--examples/qtest/extend-c-api.test30
-rw-r--r--examples/qtest/extend-c-api/bad.out5
-rw-r--r--examples/qtest/extend-c-api/bad.pdf1
-rw-r--r--examples/qtest/extend-c-api/good.out1
-rw-r--r--examples/qtest/extend-c-api/good.pdf64
5 files changed, 101 insertions, 0 deletions
diff --git a/examples/qtest/extend-c-api.test b/examples/qtest/extend-c-api.test
new file mode 100644
index 00000000..3dd82193
--- /dev/null
+++ b/examples/qtest/extend-c-api.test
@@ -0,0 +1,30 @@
+#!/usr/bin/env perl
+require 5.008;
+use warnings;
+use strict;
+
+chdir("extend-c-api") or die "chdir testdir failed: $!\n";
+
+require TestDriver;
+
+cleanup();
+
+my $td = new TestDriver('extend-c-api');
+
+$td->runtest("extend C API (good)",
+ {$td->COMMAND => "extend-c-api good.pdf"},
+ {$td->FILE => "good.out", $td->EXIT_STATUS => 0},
+ $td->NORMALIZE_NEWLINES);
+$td->runtest("extend C API (bad)",
+ {$td->COMMAND => "extend-c-api bad.pdf"},
+ {$td->FILE => "bad.out", $td->EXIT_STATUS => 2},
+ $td->NORMALIZE_NEWLINES);
+
+cleanup();
+
+$td->report(2);
+
+sub cleanup
+{
+ unlink "a.pdf";
+}
diff --git a/examples/qtest/extend-c-api/bad.out b/examples/qtest/extend-c-api/bad.out
new file mode 100644
index 00000000..51f1d56b
--- /dev/null
+++ b/examples/qtest/extend-c-api/bad.out
@@ -0,0 +1,5 @@
+WARNING: bad.pdf: can't find PDF header
+WARNING: bad.pdf: file is damaged
+WARNING: bad.pdf: can't find startxref
+WARNING: bad.pdf: Attempting to reconstruct cross-reference table
+error: bad.pdf: unable to find trailer dictionary while recovering damaged file
diff --git a/examples/qtest/extend-c-api/bad.pdf b/examples/qtest/extend-c-api/bad.pdf
new file mode 100644
index 00000000..a3d2d925
--- /dev/null
+++ b/examples/qtest/extend-c-api/bad.pdf
@@ -0,0 +1 @@
+not even a pdf file
diff --git a/examples/qtest/extend-c-api/good.out b/examples/qtest/extend-c-api/good.out
new file mode 100644
index 00000000..98205fae
--- /dev/null
+++ b/examples/qtest/extend-c-api/good.out
@@ -0,0 +1 @@
+num pages = 1
diff --git a/examples/qtest/extend-c-api/good.pdf b/examples/qtest/extend-c-api/good.pdf
new file mode 100644
index 00000000..42867b96
--- /dev/null
+++ b/examples/qtest/extend-c-api/good.pdf
@@ -0,0 +1,64 @@
+%PDF-2.0
+1 0 obj
+<<
+ /Pages 2 0 R
+ /Type /Catalog
+>>
+endobj
+2 0 obj
+<<
+ /Count 1
+ /Kids [
+ 3 0 R
+ ]
+ /Type /Pages
+>>
+endobj
+3 0 obj
+<<
+ /Contents 4 0 R
+ /MediaBox [ 0 0 612 792 ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font << /F1 5 0 R >>
+ >>
+ /Type /Page
+>>
+endobj
+4 0 obj
+<<
+ /Length 44
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato) Tj
+ET
+endstream
+endobj
+5 0 obj
+<<
+ /BaseFont /Helvetica
+ /Encoding /WinAnsiEncoding
+ /Subtype /Type1
+ /Type /Font
+>>
+endobj
+
+xref
+0 6
+0000000000 65535 f
+0000000009 00000 n
+0000000062 00000 n
+0000000133 00000 n
+0000000277 00000 n
+0000000372 00000 n
+trailer <<
+ /Root 1 0 R
+ /Size 6
+ /ID [<42841c13bbf709d79a200fa1691836f8><b1d8b5838eeafe16125317aa78e666aa>]
+>>
+startxref
+478
+%%EOF