From fee7489ee4c90c6dbd11e57ecc8e888c8f038716 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Fri, 17 Dec 2021 07:33:42 -0500 Subject: Add Pl_Buffer::getMallocBuffer --- libtests/buffer.cc | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'libtests/buffer.cc') 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 #include #include +#include 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) { -- cgit v1.2.3-54-g00ecf