aboutsummaryrefslogtreecommitdiffstats
path: root/libtests
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-06-19 14:56:36 +0200
committerJay Berkenbilt <ejb@ql.org>2022-06-19 15:12:29 +0200
commiteae75dbe448b0395aee7e49c2a9cca9f82680782 (patch)
treeea5a9edfbd52ca5c381e5f97f79e46693d4b2beb /libtests
parentbb0ea2f8e7d8fffa575b291004e4426138c7bb1a (diff)
downloadqpdf-eae75dbe448b0395aee7e49c2a9cca9f82680782.tar.zst
Add Pl_Function -- a generic function pipeline
Diffstat (limited to 'libtests')
-rw-r--r--libtests/CMakeLists.txt1
-rw-r--r--libtests/pl_function.cc29
-rw-r--r--libtests/qtest/pl_function.test17
-rw-r--r--libtests/qtest/pl_function/exp2
4 files changed, 49 insertions, 0 deletions
diff --git a/libtests/CMakeLists.txt b/libtests/CMakeLists.txt
index 62ba390e..ea4dc7cd 100644
--- a/libtests/CMakeLists.txt
+++ b/libtests/CMakeLists.txt
@@ -24,6 +24,7 @@ set(TEST_PROGRAMS
nntree
numrange
pdf_version
+ pl_function
pointer_holder
predictors
qintc
diff --git a/libtests/pl_function.cc b/libtests/pl_function.cc
new file mode 100644
index 00000000..960ad5cb
--- /dev/null
+++ b/libtests/pl_function.cc
@@ -0,0 +1,29 @@
+#include <qpdf/assert_test.h>
+
+#include <qpdf/Pl_Function.hh>
+#include <qpdf/Pl_String.hh>
+#include <qpdf/Pl_Base64.hh>
+#include <iostream>
+
+int
+main(int argc, char* argv[])
+{
+ Pl_Function p1(
+ "p1", nullptr, [](unsigned char const* data, size_t len) {
+ std::cout << "p1: " << len << ": " << data << std::endl;
+ });
+ p1.write(reinterpret_cast<unsigned char const*>("potato"), 6);
+
+ std::string s;
+ Pl_String ps("string", nullptr, s);
+ Pl_Base64 b("base64", &ps, Pl_Base64::a_encode);
+ Pl_Function p2(
+ "p2", &b, [](unsigned char const* data, size_t len) {
+ std::cout << "p2: " << len << ": " << data << std::endl;
+ });
+ p2.write(reinterpret_cast<unsigned char const*>("salad"), 5);
+ p2.finish();
+ assert(s == "c2FsYWQ=");
+
+ return 0;
+}
diff --git a/libtests/qtest/pl_function.test b/libtests/qtest/pl_function.test
new file mode 100644
index 00000000..847aa472
--- /dev/null
+++ b/libtests/qtest/pl_function.test
@@ -0,0 +1,17 @@
+#!/usr/bin/env perl
+require 5.008;
+use warnings;
+use strict;
+
+chdir("pl_function") or die "chdir testdir failed: $!\n";
+
+require TestDriver;
+
+my $td = new TestDriver('pl_function');
+
+$td->runtest("pl_function",
+ {$td->COMMAND => "pl_function"},
+ {$td->FILE => "exp", $td->EXIT_STATUS => 0},
+ $td->NORMALIZE_NEWLINES);
+
+$td->report(1);
diff --git a/libtests/qtest/pl_function/exp b/libtests/qtest/pl_function/exp
new file mode 100644
index 00000000..fd2ea1bc
--- /dev/null
+++ b/libtests/qtest/pl_function/exp
@@ -0,0 +1,2 @@
+p1: 6: potato
+p2: 5: salad