diff options
author | Jay Berkenbilt <ejb@ql.org> | 2010-08-05 22:20:52 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2010-08-05 22:20:52 +0200 |
commit | 6f2bd7eb3a64ae6ffbdf9ae256d822056ddcb7b0 (patch) | |
tree | b2853762f4a564e1110ddf37f4821ea02d40a367 /qpdf/test_driver.cc | |
parent | 11df7809af7131af139be2e76f2db87128700939 (diff) | |
download | qpdf-6f2bd7eb3a64ae6ffbdf9ae256d822056ddcb7b0.tar.zst |
newStream
git-svn-id: svn+q:///qpdf/trunk@991 71b93d88-0707-0410-a8cf-f5a4172ac649
Diffstat (limited to 'qpdf/test_driver.cc')
-rw-r--r-- | qpdf/test_driver.cc | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/qpdf/test_driver.cc b/qpdf/test_driver.cc index e9739e92..09458227 100644 --- a/qpdf/test_driver.cc +++ b/qpdf/test_driver.cc @@ -398,6 +398,35 @@ void runtest(int n, char const* filename) w.setStreamDataMode(qpdf_s_preserve); w.write(); } + else if (n == 9) + { + QPDFObjectHandle root = pdf.getRoot(); + PointerHolder<Buffer> b1 = new Buffer(20); + unsigned char* bp = b1.getPointer()->getBuffer(); + memcpy(bp, (char*)"data for new stream\n", 20); // no null! + QPDFObjectHandle qstream = QPDFObjectHandle::newStream(&pdf, b1); + QPDFObjectHandle rstream = QPDFObjectHandle::newStream(&pdf); + try + { + rstream.getStreamData(); + std::cout << "oops -- getStreamData didn't throw" << std::endl; + } + catch (std::logic_error const& e) + { + std::cout << "exception: " << e.what() << std::endl; + } + PointerHolder<Buffer> b2 = new Buffer(22); + bp = b2.getPointer()->getBuffer(); + memcpy(bp, (char*)"data for other stream\n", 22); // no null! + rstream.replaceStreamData( + b2, QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull()); + root.replaceKey("/QStream", qstream); + root.replaceKey("/RStream", rstream); + QPDFWriter w(pdf, "a.pdf"); + w.setStaticID(true); + w.setStreamDataMode(qpdf_s_preserve); + w.write(); + } else { throw std::runtime_error(std::string("invalid test ") + |