aboutsummaryrefslogtreecommitdiffstats
path: root/libtests/concatenate.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2012-06-27 16:02:23 +0200
committerJay Berkenbilt <ejb@ql.org>2012-06-27 16:20:47 +0200
commitd6cb2b94187d5abc7d8f7f595ed42d6739bbfcd5 (patch)
tree1c67178c54000aae005d0fbddefe33c7c6342356 /libtests/concatenate.cc
parentf07e3370f029d1e4ab0df676ec1fb9ccfbeb708a (diff)
downloadqpdf-d6cb2b94187d5abc7d8f7f595ed42d6739bbfcd5.tar.zst
Add test code for Pl_Concatenate
Diffstat (limited to 'libtests/concatenate.cc')
-rw-r--r--libtests/concatenate.cc38
1 files changed, 38 insertions, 0 deletions
diff --git a/libtests/concatenate.cc b/libtests/concatenate.cc
new file mode 100644
index 00000000..cf4332cb
--- /dev/null
+++ b/libtests/concatenate.cc
@@ -0,0 +1,38 @@
+#include <qpdf/Pl_Concatenate.hh>
+#include <qpdf/Pl_Flate.hh>
+#include <qpdf/Pl_Buffer.hh>
+#include <iostream>
+#include <assert.h>
+
+static void pipeStringAndFinish(Pipeline* p, std::string const& str)
+{
+ p->write((unsigned char*)str.c_str(), str.length());
+ p->finish();
+}
+
+int main(int argc, char* argv[])
+{
+ Pl_Buffer b1("compressed");
+ Pl_Flate deflate("compress", &b1, Pl_Flate::a_deflate);
+ Pl_Concatenate concat("concat", &deflate);
+ pipeStringAndFinish(&concat, "-one-");
+ pipeStringAndFinish(&concat, "-two-");
+ concat.manualFinish();
+
+ PointerHolder<Buffer> b1_buf = b1.getBuffer();
+ Pl_Buffer b2("uncompressed");
+ Pl_Flate inflate("uncompress", &b2, Pl_Flate::a_inflate);
+ inflate.write(b1_buf->getBuffer(), b1_buf->getSize());
+ inflate.finish();
+ PointerHolder<Buffer> b2_buf = b2.getBuffer();
+ std::string result((char const*)b2_buf->getBuffer(), b2_buf->getSize());
+ if (result == "-one--two-")
+ {
+ std::cout << "concatenate test passed" << std::endl;
+ }
+ else
+ {
+ std::cout << "concatenate test failed: " << result << std::endl;
+ }
+ return 0;
+}