summaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/transactionlog
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-09-10 07:38:37 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-09-10 07:38:37 +0000
commit5f83f933f1edb3e4e642384a74110d5afcb70e87 (patch)
tree6bb16263e593da0babf70568057601800e32835e /searchlib/src/tests/transactionlog
parent4748ce50f5a1561a4faeb5f7cbbab81d77b8eb6d (diff)
Extend unit test to verify that encoding chosen matches expected.
Diffstat (limited to 'searchlib/src/tests/transactionlog')
-rw-r--r--searchlib/src/tests/transactionlog/chunks_test.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/searchlib/src/tests/transactionlog/chunks_test.cpp b/searchlib/src/tests/transactionlog/chunks_test.cpp
index fa5fe3c1006..8605fa2b4d6 100644
--- a/searchlib/src/tests/transactionlog/chunks_test.cpp
+++ b/searchlib/src/tests/transactionlog/chunks_test.cpp
@@ -14,7 +14,7 @@ using vespalib::compression::CompressionConfig;
constexpr const char * TEXT = "abcdefghijklmnopqrstuvwxyz_abcdefghijklmnopqrstuvwxyz_abcdefghijklmnopqrstuvwxyz_abcdefghijklmnopqrstuvwxyz_abcdefghijklmnopqrstuvwxyz";
void
-verifySerializationAndDeserialization(IChunk & org, size_t numEntries) {
+verifySerializationAndDeserialization(IChunk & org, size_t numEntries, Encoding expected) {
for (size_t i(0); i < numEntries; i++) {
const char *start = TEXT + (i%20);
Packet::Entry entry(i, i%8, ConstBufferRef(start, strlen(start)));
@@ -23,6 +23,7 @@ verifySerializationAndDeserialization(IChunk & org, size_t numEntries) {
nbostream os;
Encoding encoding = org.encode(os);
+ EXPECT_EQUAL(expected, encoding);
auto deserialized = IChunk::create(encoding.getRaw());
deserialized->decode(os);
EXPECT_TRUE(os.empty());
@@ -31,36 +32,41 @@ verifySerializationAndDeserialization(IChunk & org, size_t numEntries) {
TEST("test serialization and deserialization of current default uncompressed xxh64") {
XXH64NoneChunk chunk;
- verifySerializationAndDeserialization(chunk, 1);
+ verifySerializationAndDeserialization(chunk, 1, Encoding(Encoding::Crc::xxh64, Encoding::Compression::none));
}
TEST("test serialization and deserialization of legacy uncompressed ccittcrc32") {
CCITTCRC32NoneChunk chunk;
- verifySerializationAndDeserialization(chunk, 1);
+ verifySerializationAndDeserialization(chunk, 1, Encoding(Encoding::Crc::ccitt_crc32, Encoding::Compression::none));
}
TEST("test serialization and deserialization of future multientry xxh64 lz4 compression") {
for (size_t level(1); level < 9; level++) {
XXH64CompressedChunk chunk(CompressionConfig::Type::LZ4, level);
- verifySerializationAndDeserialization(chunk, 100);
+ verifySerializationAndDeserialization(chunk, 100, Encoding(Encoding::Crc::xxh64, Encoding::Compression::lz4));
}
}
TEST("test serialization and deserialization of future multientry xxh64 zstd compression") {
for (size_t level(1); level < 9; level++) {
XXH64CompressedChunk chunk(CompressionConfig::Type::ZSTD, level);
- verifySerializationAndDeserialization(chunk, 100);
+ verifySerializationAndDeserialization(chunk, 100, Encoding(Encoding::Crc::xxh64, Encoding::Compression::zstd));
}
}
TEST("test serialization and deserialization of future multientry xxh64 no compression") {
XXH64CompressedChunk chunk(CompressionConfig::Type::NONE_MULTI, 1);
- verifySerializationAndDeserialization(chunk, 100);
+ verifySerializationAndDeserialization(chunk, 100, Encoding(Encoding::Crc::xxh64, Encoding::Compression::none_multi));
}
TEST("test serialization and deserialization of uncompressable lz4") {
XXH64CompressedChunk chunk(CompressionConfig::Type::LZ4, 1);
- verifySerializationAndDeserialization(chunk, 1);
+ verifySerializationAndDeserialization(chunk, 1, Encoding(Encoding::Crc::xxh64, Encoding::Compression::none_multi));
+}
+
+TEST("test serialization and deserialization of uncompressable zstd") {
+ XXH64CompressedChunk chunk(CompressionConfig::Type::ZSTD, 1);
+ verifySerializationAndDeserialization(chunk, 1, Encoding(Encoding::Crc::xxh64, Encoding::Compression::none_multi));
}
TEST_MAIN() { TEST_RUN_ALL(); }