diff --git a/.gitignore b/.gitignore index 0b98a1b161..83ed62c030 100644 --- a/.gitignore +++ b/.gitignore @@ -99,3 +99,4 @@ TAGS deps/* !deps/CMakeLists.txt +!deps/test diff --git a/cmake/cmake.options b/cmake/cmake.options index bc3177e5cc..74b0d9fdbb 100644 --- a/cmake/cmake.options +++ b/cmake/cmake.options @@ -23,4 +23,10 @@ option( BUILD_WITH_LUCENE "If build with lucene" OFF +) + +option( + BUILD_DEPENDENCY_TESTS + "If build dependency tests" + OFF ) \ No newline at end of file diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt index 57de0125a2..e35417b4c5 100644 --- a/deps/CMakeLists.txt +++ b/deps/CMakeLists.txt @@ -1,3 +1,6 @@ +# ================================================================================================ +# DEPENDENCIES +# ================================================================================================ # googletest if(${BUILD_TEST}) add_subdirectory(googletest) @@ -63,3 +66,10 @@ if(${BUILD_WITH_LUCENE}) option(ENABLE_TEST "Enable the tests" OFF) add_subdirectory(lucene) endif(${BUILD_WITH_LUCENE}) + +# ================================================================================================ +# DEPENDENCY TEST +# ================================================================================================ +if(${BUILD_DEPENDENCY_TESTS}) + add_subdirectory(test) +endif(${BUILD_DEPENDENCY_TESTS}) diff --git a/deps/test/CMakeLists.txt b/deps/test/CMakeLists.txt new file mode 100644 index 0000000000..4547431ca7 --- /dev/null +++ b/deps/test/CMakeLists.txt @@ -0,0 +1,4 @@ +# rocksdb +if(${BUILD_WITH_ROCKSDB}) + add_subdirectory(rocksdb) +endif(${BUILD_WITH_ROCKSDB}) diff --git a/deps/test/rocksdb/CMakeLists.txt b/deps/test/rocksdb/CMakeLists.txt new file mode 100644 index 0000000000..b500e0a661 --- /dev/null +++ b/deps/test/rocksdb/CMakeLists.txt @@ -0,0 +1,6 @@ +add_executable(rocksdbTest "") +target_sources(rocksdbTest + PRIVATE + "${CMAKE_CURRENT_SOURCE_DIR}/main.c" +) +target_link_libraries(rocksdbTest rocksdb) \ No newline at end of file diff --git a/deps/test/rocksdb/main.c b/deps/test/rocksdb/main.c new file mode 100644 index 0000000000..d1cbd373da --- /dev/null +++ b/deps/test/rocksdb/main.c @@ -0,0 +1,46 @@ +#include +#include +#include +#include +#include // sysconf() - get CPU count +#include "rocksdb/c.h" + +// const char DBPath[] = "/tmp/rocksdb_c_simple_example"; +const char DBPath[] = "rocksdb_c_simple_example"; +const char DBBackupPath[] = "/tmp/rocksdb_c_simple_example_backup"; + +int main(int argc, char const *argv[]) { + rocksdb_t * db; + rocksdb_backup_engine_t *be; + rocksdb_options_t * options = rocksdb_options_create(); + rocksdb_options_set_create_if_missing(options, 1); + + // open DB + char *err = NULL; + db = rocksdb_open(options, DBPath, &err); + + // Write + rocksdb_writeoptions_t *writeoptions = rocksdb_writeoptions_create(); + rocksdb_put(db, writeoptions, "key", 3, "value", 5, &err); + + // Read + rocksdb_readoptions_t *readoptions = rocksdb_readoptions_create(); + rocksdb_readoptions_set_snapshot(readoptions, rocksdb_create_snapshot(db)); + size_t vallen = 0; + char * val = rocksdb_get(db, readoptions, "key", 3, &vallen, &err); + printf("val:%s\n", val); + + // Update + // rocksdb_put(db, writeoptions, "key", 3, "eulav", 5, &err); + + // Delete + rocksdb_delete(db, writeoptions, "key", 3, &err); + + // Read again + val = rocksdb_get(db, readoptions, "key", 3, &vallen, &err); + printf("val:%s\n", val); + + rocksdb_close(db); + + return 0; +} \ No newline at end of file