aboutsummaryrefslogtreecommitdiff
path: root/zencore/compress.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2021-05-24 17:54:57 +0200
committerStefan Boberg <[email protected]>2021-05-24 17:54:57 +0200
commit26baba3d3761800bf7c98bb5a4280185a7456ca0 (patch)
tree26ee9d4d2b8a2b85dd73757720dbc655dc07fe96 /zencore/compress.cpp
parentAdded IoHash::FromBLAKE3 (diff)
downloadzen-26baba3d3761800bf7c98bb5a4280185a7456ca0.tar.xz
zen-26baba3d3761800bf7c98bb5a4280185a7456ca0.zip
Added CompressedBuffer round-trip tests
Diffstat (limited to 'zencore/compress.cpp')
-rw-r--r--zencore/compress.cpp85
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