From 244b11506b7a0b0a70bb4faa76a6dd401247278a Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Wed, 13 May 2020 13:56:00 +0200 Subject: [PATCH] Add basic test for compression --- core-buffer/test/CMakeLists.txt | 1 + core-buffer/test/main.cpp | 1 + core-buffer/test/test_bitshuffle.cpp | 33 ++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 core-buffer/test/test_bitshuffle.cpp diff --git a/core-buffer/test/CMakeLists.txt b/core-buffer/test/CMakeLists.txt index 1770781..770d842 100644 --- a/core-buffer/test/CMakeLists.txt +++ b/core-buffer/test/CMakeLists.txt @@ -1,6 +1,7 @@ add_executable(core-buffer_tests main.cpp) target_link_libraries(core-buffer_tests + external core-buffer hdf5 hdf5_hl diff --git a/core-buffer/test/main.cpp b/core-buffer/test/main.cpp index 895d0c6..1562216 100644 --- a/core-buffer/test/main.cpp +++ b/core-buffer/test/main.cpp @@ -8,6 +8,7 @@ #include "test_FastQueue.cpp" #include "test_LiveRecvModule.cpp" #include "test_BufferUdpReceiver.cpp" +#include "test_bitshuffle.cpp" using namespace std; diff --git a/core-buffer/test/test_bitshuffle.cpp b/core-buffer/test/test_bitshuffle.cpp new file mode 100644 index 0000000..a8bf06b --- /dev/null +++ b/core-buffer/test/test_bitshuffle.cpp @@ -0,0 +1,33 @@ +#include "gtest/gtest.h" +#include "buffer_config.hpp" +#include "bitshuffle/bitshuffle.h" + +using namespace std; + +TEST(bitshuffle, simple_compression) +{ + auto size = MODULE_N_PIXELS; + auto elem_size = 2; // uint16_t + auto block_size = MODULE_N_BYTES; + + auto compress_buffer_size = bshuf_compress_lz4_bound( + size, elem_size, block_size); + + auto frame_buffer = make_unique(MODULE_N_BYTES); + auto compress_buffer = make_unique(compress_buffer_size); + + auto compressed_size = bshuf_compress_lz4( + frame_buffer.get(), compress_buffer.get(), + size, elem_size, block_size); + + ASSERT_TRUE(compressed_size > 0); + + auto out_frame_buffer = make_unique(MODULE_N_BYTES); + auto consumed_bytes = bshuf_decompress_lz4( + compress_buffer.get(), out_frame_buffer.get(), + size, elem_size, block_size); + + ASSERT_TRUE(consumed_bytes > 0); + + ASSERT_EQ(compressed_size, consumed_bytes); +} \ No newline at end of file