aboutsummaryrefslogtreecommitdiffstats
path: root/libtests/buffer.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2021-12-17 13:33:42 +0100
committerJay Berkenbilt <ejb@ql.org>2021-12-17 18:38:52 +0100
commitfee7489ee4c90c6dbd11e57ecc8e888c8f038716 (patch)
tree9a1872d7e52b2db3ec2cb44109a3a3918927621d /libtests/buffer.cc
parent8c4ad6b946a762fd57443a3647e0cc620ad6eae4 (diff)
downloadqpdf-fee7489ee4c90c6dbd11e57ecc8e888c8f038716.tar.zst
Add Pl_Buffer::getMallocBuffer
Diffstat (limited to 'libtests/buffer.cc')
-rw-r--r--libtests/buffer.cc26
1 files changed, 26 insertions, 0 deletions
diff --git a/libtests/buffer.cc b/libtests/buffer.cc
index bd28746f..23d82e7b 100644
--- a/libtests/buffer.cc
+++ b/libtests/buffer.cc
@@ -6,6 +6,7 @@
#include <stdexcept>
#include <iostream>
#include <cassert>
+#include <cstring>
static unsigned char* uc(char const* s)
{
@@ -98,6 +99,31 @@ int main()
b = bp3.getBuffer();
std::cout << "size: " << b->getSize() << std::endl;
delete b;
+
+ // Malloc buffer should behave similarly.
+ Pl_Buffer bp4("bp4");
+ bp4.write(uc("asdf"), 4);
+ unsigned char* mbuf;
+ size_t len;
+ try
+ {
+ bp4.getMallocBuffer(&mbuf, &len);
+ assert(false);
+ }
+ catch (std::logic_error& e)
+ {
+ std::cout << "malloc buffer logic error: " << e.what() << std::endl;
+ }
+ bp4.finish();
+ bp4.getMallocBuffer(&mbuf, &len);
+ assert(len == 4);
+ assert(memcmp(mbuf, uc("asdf"), 4) == 0);
+ free(mbuf);
+ bp4.write(uc(""), 0);
+ bp4.finish();
+ bp4.getMallocBuffer(&mbuf, &len);
+ assert(mbuf == nullptr);
+ assert(len == 0);
}
catch (std::exception& e)
{