From 6ef2eca04958266d4ce3322660074a0ebf6da8d0 Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Mon, 17 May 2021 10:20:54 +0300 Subject: [PATCH] add zlib test --- test/zlib.cpp | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 test/zlib.cpp diff --git a/test/zlib.cpp b/test/zlib.cpp new file mode 100644 index 00000000..2ebaf772 --- /dev/null +++ b/test/zlib.cpp @@ -0,0 +1,68 @@ +#include +#include + +int main() +{ + z_stream stream = {}; + + if (deflateInit(&stream, Z_DEFAULT_COMPRESSION) != Z_OK) + { + return 1; + } + + constexpr size_t BUFFER_SIZE = 1024; + unsigned char reference[BUFFER_SIZE]; + + for (size_t i = 0; i < BUFFER_SIZE; ++i) + { + reference[i] = static_cast(i % 47); + } + + unsigned char deflated[BUFFER_SIZE] = {}; + + stream.next_in = reference; + stream.avail_in = BUFFER_SIZE; + stream.next_out = deflated; + stream.avail_out = BUFFER_SIZE; + + if (deflate(&stream, Z_FINISH) != Z_STREAM_END) + { + return 1; + } + + if (deflateEnd(&stream) != Z_OK) + { + return 1; + } + + stream = {}; + + if (inflateInit(&stream) != Z_OK) + { + return 1; + } + + unsigned char inflated[BUFFER_SIZE] = {}; + + stream.next_in = deflated; + stream.avail_in = BUFFER_SIZE; + stream.next_out = inflated; + stream.avail_out = BUFFER_SIZE; + + if (inflate(&stream, Z_FINISH) != Z_STREAM_END) + { + return 1; + } + + if (inflateEnd(&stream) != Z_OK) + { + return 1; + } + + if (memcmp(reference, inflated, BUFFER_SIZE) != 0) + { + return 1; + } + + return 0; +}