diff options
| author | Stefan Boberg <[email protected]> | 2021-05-24 17:54:57 +0200 |
|---|---|---|
| committer | Stefan Boberg <[email protected]> | 2021-05-24 17:54:57 +0200 |
| commit | 26baba3d3761800bf7c98bb5a4280185a7456ca0 (patch) | |
| tree | 26ee9d4d2b8a2b85dd73757720dbc655dc07fe96 /zencore/compress.cpp | |
| parent | Added IoHash::FromBLAKE3 (diff) | |
| download | zen-26baba3d3761800bf7c98bb5a4280185a7456ca0.tar.xz zen-26baba3d3761800bf7c98bb5a4280185a7456ca0.zip | |
Added CompressedBuffer round-trip tests
Diffstat (limited to 'zencore/compress.cpp')
| -rw-r--r-- | zencore/compress.cpp | 85 |
1 files changed, 67 insertions, 18 deletions
diff --git a/zencore/compress.cpp b/zencore/compress.cpp index 6c4696a83..805e962cd 100644 --- a/zencore/compress.cpp +++ b/zencore/compress.cpp @@ -486,6 +486,7 @@ GetMethod(CompressionMethod Method) { static MethodNone None; static MethodLZ4 LZ4; + switch (Method) { default: @@ -685,31 +686,79 @@ TEST_CASE("CompressedBuffer") uint8_t Ones[256]; memset(Ones, 1, sizeof Ones); - CompressedBuffer Buffer1 = - CompressedBuffer::Compress(CompressionMethod::None, CompositeBuffer(SharedBuffer::MakeView(MakeMemoryView(Zeroes)))); + { + CompressedBuffer Buffer = + CompressedBuffer::Compress(CompressionMethod::None, CompositeBuffer(SharedBuffer::MakeView(MakeMemoryView(Zeroes)))); + + CHECK(Buffer.GetRawSize() == sizeof(Zeroes)); + CHECK(Buffer.GetCompressedSize() == (sizeof(Zeroes) + sizeof(detail::BufferHeader))); + + CompositeBuffer Compressed = Buffer.GetCompressed(); + CompressedBuffer BufferD = CompressedBuffer::FromCompressed(Compressed); - CHECK(Buffer1.GetRawSize() == sizeof(Zeroes)); - CHECK(Buffer1.GetCompressedSize() == (sizeof(Zeroes) + sizeof(detail::BufferHeader))); + CHECK(BufferD.IsNull() == false); - CompressedBuffer Buffer2 = CompressedBuffer::Compress( - CompressionMethod::None, - CompositeBuffer(SharedBuffer::MakeView(MakeMemoryView(Zeroes)), SharedBuffer::MakeView(MakeMemoryView(Ones)))); + CompositeBuffer Decomp = BufferD.DecompressToComposite(); - CHECK(Buffer2.GetRawSize() == (sizeof(Zeroes) + sizeof(Ones))); - CHECK(Buffer2.GetCompressedSize() == (sizeof(Zeroes) + sizeof(Ones) + sizeof(detail::BufferHeader))); + CHECK(Decomp.GetSize() == Buffer.GetRawSize()); + CHECK(BLAKE3::HashBuffer(Decomp) == BufferD.GetRawHash()); + } + + { + CompressedBuffer Buffer = CompressedBuffer::Compress( + CompressionMethod::None, + CompositeBuffer(SharedBuffer::MakeView(MakeMemoryView(Zeroes)), SharedBuffer::MakeView(MakeMemoryView(Ones)))); - CompressedBuffer Buffer3 = - CompressedBuffer::Compress(CompressionMethod::LZ4, CompositeBuffer(SharedBuffer::MakeView(MakeMemoryView(Zeroes)))); + CHECK(Buffer.GetRawSize() == (sizeof(Zeroes) + sizeof(Ones))); + CHECK(Buffer.GetCompressedSize() == (sizeof(Zeroes) + sizeof(Ones) + sizeof(detail::BufferHeader))); - CHECK(Buffer3.GetRawSize() == sizeof(Zeroes)); - CHECK(Buffer3.GetCompressedSize() == (15 + sizeof(detail::BufferHeader))); + CompositeBuffer Compressed = Buffer.GetCompressed(); + CompressedBuffer BufferD = CompressedBuffer::FromCompressed(Compressed); + + CHECK(BufferD.IsNull() == false); + + CompositeBuffer Decomp = BufferD.DecompressToComposite(); + + CHECK(Decomp.GetSize() == Buffer.GetRawSize()); + CHECK(BLAKE3::HashBuffer(Decomp) == BufferD.GetRawHash()); + } + + { + CompressedBuffer Buffer = + CompressedBuffer::Compress(CompressionMethod::LZ4, CompositeBuffer(SharedBuffer::MakeView(MakeMemoryView(Zeroes)))); - CompressedBuffer Buffer4 = CompressedBuffer::Compress( - CompressionMethod::LZ4, - CompositeBuffer(SharedBuffer::MakeView(MakeMemoryView(Zeroes)), SharedBuffer::MakeView(MakeMemoryView(Ones)))); + CHECK(Buffer.GetRawSize() == sizeof(Zeroes)); + CHECK(Buffer.GetCompressedSize() == (15 + sizeof(detail::BufferHeader))); - CHECK(Buffer4.GetRawSize() == (sizeof(Zeroes) + sizeof(Ones))); - CHECK(Buffer4.GetCompressedSize() == (20 + sizeof(detail::BufferHeader))); + CompositeBuffer Compressed = Buffer.GetCompressed(); + CompressedBuffer BufferD = CompressedBuffer::FromCompressed(Compressed); + + CHECK(BufferD.IsNull() == false); + + CompositeBuffer Decomp = BufferD.DecompressToComposite(); + + CHECK(Decomp.GetSize() == Buffer.GetRawSize()); + CHECK(BLAKE3::HashBuffer(Decomp) == BufferD.GetRawHash()); + } + + { + CompressedBuffer Buffer = CompressedBuffer::Compress( + CompressionMethod::LZ4, + CompositeBuffer(SharedBuffer::MakeView(MakeMemoryView(Zeroes)), SharedBuffer::MakeView(MakeMemoryView(Ones)))); + + CHECK(Buffer.GetRawSize() == (sizeof(Zeroes) + sizeof(Ones))); + CHECK(Buffer.GetCompressedSize() == (20 + sizeof(detail::BufferHeader))); + + CompositeBuffer Compressed = Buffer.GetCompressed(); + CompressedBuffer BufferD = CompressedBuffer::FromCompressed(Compressed); + + CHECK(BufferD.IsNull() == false); + + CompositeBuffer Decomp = BufferD.DecompressToComposite(); + + CHECK(Decomp.GetSize() == Buffer.GetRawSize()); + CHECK(BLAKE3::HashBuffer(Decomp) == BufferD.GetRawHash()); + } } void |