]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Add an test checking if frequent used options works.
authorXiaoxi Chen <xiaoxi.chen@intel.com>
Fri, 8 May 2015 07:50:35 +0000 (15:50 +0800)
committerXiaoxi Chen <xiaoxi.chen@intel.com>
Wed, 13 May 2015 00:22:44 +0000 (08:22 +0800)
Now most frequent used options are tested passed.

Known issue:
  BackgroundThreads(we may need to interpret by ourselves).
  DisableWAL(need to interpret since it's in wopitions).

Signed-off-by: Xiaoxi Chen <xiaoxi.chen@intel.com>
src/test/Makefile-server.am
src/test/objectstore/TestRocksdbOptionParse.cc [new file with mode: 0644]

index d5af9394d0a25388bad3b27904c80eadfe849074..20d17e0c9a34237dbbb9ca345c420349f04fcde2 100644 (file)
@@ -183,6 +183,19 @@ bin_DEBUGPROGRAMS += ceph_test_snap_mapper
 
 endif # WITH_OSD
 
+if WITH_SLIBROCKSDB
+unittest_rocksdb_option_static_SOURCES = test/objectstore/TestRocksdbOptionParse.cc
+unittest_rocksdb_option_static_LDADD = $(LIBOS) $(UNITTEST_LDADD) $(CEPH_GLOBAL) rocksdb/librocksdb.la
+unittest_rocksdb_option_static_CXXFLAGS = $(UNITTEST_CXXFLAGS) ${AM_CXXFLAGS} ${LIBROCKSDB_CFLAGS} -std=gnu++11 -I rocksdb/include
+check_TESTPROGRAMS += unittest_rocksdb_option_static
+endif
+
+if WITH_DLIBROCKSDB
+unittest_rocksdb_option_SOURCES = test/objectstore/TestRocksdbOptionParse.cc
+unittest_rocksdb_option_LDADD = $(LIBOS) $(UNITTEST_LDADD) $(CEPH_GLOBAL) -lrocksdb
+unittest_rocksdb_option_CXXFLAGS = $(UNITTEST_CXXFLAGS) ${AM_CXXFLAGS} ${LIBROCKSDB_CFLAGS} -std=gnu++11
+check_TESTPROGRAMS += unittest_rocksdb_option
+endif
 
 unittest_chain_xattr_SOURCES = test/objectstore/chain_xattr.cc
 unittest_chain_xattr_LDADD = $(LIBOS) $(UNITTEST_LDADD) $(CEPH_GLOBAL)
diff --git a/src/test/objectstore/TestRocksdbOptionParse.cc b/src/test/objectstore/TestRocksdbOptionParse.cc
new file mode 100644 (file)
index 0000000..de7a7b3
--- /dev/null
@@ -0,0 +1,45 @@
+#include <gtest/gtest.h>
+#include "rocksdb/db.h"
+#include "rocksdb/utilities/convenience.h"
+#include <iostream>
+using namespace std;
+
+TEST(RocksDBOption, simple) {
+  rocksdb::Options options;
+  rocksdb::Status status;
+  string options_string = ""
+                         "write_buffer_size=536870912;"
+                         "create_if_missing=true;"
+                         "max_write_buffer_number=4;"
+                         "max_background_compactions=4;"
+                         "stats_dump_period_sec = 5;"
+                         "min_write_buffer_number_to_merge = 2;"
+                         "level0_file_num_compaction_trigger = 4;"
+                         "max_bytes_for_level_base = 104857600;"
+                         "target_file_size_base = 10485760;"
+                         "num_levels = 3;"
+                         "compression = kNoCompression;"
+                         "disable_data_sync = false;";
+  status = rocksdb::GetOptionsFromString(options, options_string, &options);
+  if (!status.ok()) {
+    cerr << status.ToString() << std::endl;
+    ASSERT_TRUE(status.ok());
+  }
+  ASSERT_TRUE(status.ok());
+  ASSERT_EQ(536870912, options.write_buffer_size);
+  ASSERT_EQ(4, options.max_write_buffer_number);
+  ASSERT_EQ(4, options.max_background_compactions);
+  ASSERT_EQ(5, options.stats_dump_period_sec);
+  ASSERT_EQ(2, options.min_write_buffer_number_to_merge);
+  ASSERT_EQ(4, options.level0_file_num_compaction_trigger);
+  ASSERT_EQ(104857600, options.max_bytes_for_level_base);
+  ASSERT_EQ(10485760, options.target_file_size_base);
+  ASSERT_EQ(3, options.num_levels);
+  ASSERT_FALSE(options.disableDataSync);
+ // ASSERT_EQ("none", options.compression);
+}
+
+int main(int argc, char **argv) {
+  ::testing::InitGoogleTest(&argc, argv);
+  return RUN_ALL_TESTS();
+}