summaryrefslogtreecommitdiff
path: root/table/table_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'table/table_test.cc')
-rw-r--r--table/table_test.cc27
1 files changed, 21 insertions, 6 deletions
diff --git a/table/table_test.cc b/table/table_test.cc
index a405586..b3baf95 100644
--- a/table/table_test.cc
+++ b/table/table_test.cc
@@ -14,6 +14,7 @@
#include "leveldb/db.h"
#include "leveldb/env.h"
#include "leveldb/iterator.h"
+#include "leveldb/options.h"
#include "leveldb/table_builder.h"
#include "table/block.h"
#include "table/block_builder.h"
@@ -784,15 +785,29 @@ TEST(TableTest, ApproximateOffsetOfPlain) {
ASSERT_TRUE(Between(c.ApproximateOffsetOf("xyz"), 610000, 612000));
}
-static bool SnappyCompressionSupported() {
+static bool CompressionSupported(CompressionType type) {
std::string out;
Slice in = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
- return port::Snappy_Compress(in.data(), in.size(), &out);
+ if (type == kSnappyCompression) {
+ return port::Snappy_Compress(in.data(), in.size(), &out);
+ } else if (type == kZstdCompression) {
+ return port::Zstd_Compress(in.data(), in.size(), &out);
+ }
+ return false;
}
-TEST(TableTest, ApproximateOffsetOfCompressed) {
- if (!SnappyCompressionSupported())
- GTEST_SKIP() << "skipping compression tests";
+class CompressionTableTest
+ : public ::testing::TestWithParam<std::tuple<CompressionType>> {};
+
+INSTANTIATE_TEST_SUITE_P(CompressionTests, CompressionTableTest,
+ ::testing::Values(kSnappyCompression,
+ kZstdCompression));
+
+TEST_P(CompressionTableTest, ApproximateOffsetOfCompressed) {
+ CompressionType type = ::testing::get<0>(GetParam());
+ if (!CompressionSupported(type)) {
+ GTEST_SKIP() << "skipping compression test: " << type;
+ }
Random rnd(301);
TableConstructor c(BytewiseComparator());
@@ -805,7 +820,7 @@ TEST(TableTest, ApproximateOffsetOfCompressed) {
KVMap kvmap;
Options options;
options.block_size = 1024;
- options.compression = kSnappyCompression;
+ options.compression = type;
c.Finish(options, &keys, &kvmap);
// Expected upper and lower bounds of space used by compressible strings.