From 3dfdfef07a81f0f26758b7c22cb57242362d32ff Mon Sep 17 00:00:00 2001 From: Xu Peng Date: Mon, 29 Apr 2019 13:17:13 +0800 Subject: [PATCH 1/7] test(db): add utils in db test Former-commit-id: 0e65a0a885cc3ead0fb233bd041bb4f8b8645898 --- cpp/unittest/db/CMakeLists.txt | 1 + cpp/unittest/db/db_tests.cpp | 38 +--------------------------------- cpp/unittest/db/utils.cpp | 27 ++++++++++++++++++++++++ cpp/unittest/db/utils.h | 37 +++++++++++++++++++++++++++++++++ 4 files changed, 66 insertions(+), 37 deletions(-) create mode 100644 cpp/unittest/db/utils.cpp create mode 100644 cpp/unittest/db/utils.h diff --git a/cpp/unittest/db/CMakeLists.txt b/cpp/unittest/db/CMakeLists.txt index f76d353630..99ef28c981 100644 --- a/cpp/unittest/db/CMakeLists.txt +++ b/cpp/unittest/db/CMakeLists.txt @@ -26,6 +26,7 @@ set(db_test_src ${db_srcs} ${wrapper_src} ${require_files} + utils.cpp db_tests.cpp) cuda_add_executable(db_test ${db_test_src}) diff --git a/cpp/unittest/db/db_tests.cpp b/cpp/unittest/db/db_tests.cpp index 723f52e2c8..61c4ab45df 100644 --- a/cpp/unittest/db/db_tests.cpp +++ b/cpp/unittest/db/db_tests.cpp @@ -6,48 +6,12 @@ #include #include #include -#include +#include "utils.h" #include "db/DB.h" using namespace zilliz::vecwise; -#define TIMING - -#ifdef TIMING -#define INIT_TIMER auto start = std::chrono::high_resolution_clock::now(); -#define START_TIMER start = std::chrono::high_resolution_clock::now(); -#define STOP_TIMER(name) LOG(DEBUG) << "RUNTIME of " << name << ": " << \ - std::chrono::duration_cast( \ - std::chrono::high_resolution_clock::now()-start \ - ).count() << " ms "; -#else -#define INIT_TIMER -#define START_TIMER -#define STOP_TIMER(name) -#endif - -class DBTest : public ::testing::Test { -protected: - virtual void SetUp() { - el::Configurations defaultConf; - defaultConf.setToDefault(); - defaultConf.set(el::Level::Debug, - el::ConfigurationType::Format, "[%thread-%datetime-%level]: %msg (%fbase:%line)"); - el::Loggers::reconfigureLogger("default", defaultConf); - } - -}; - -namespace { - void ASSERT_STATS(engine::Status& stat) { - ASSERT_TRUE(stat.ok()); - if(!stat.ok()) { - std::cout << stat.ToString() << std::endl; - } - } -} - TEST_F(DBTest, DB_TEST) { static const std::string group_name = "test_group"; diff --git a/cpp/unittest/db/utils.cpp b/cpp/unittest/db/utils.cpp new file mode 100644 index 0000000000..cf105a1dc9 --- /dev/null +++ b/cpp/unittest/db/utils.cpp @@ -0,0 +1,27 @@ +//////////////////////////////////////////////////////////////////////////////// +// Copyright 上海赜睿信息科技有限公司(Zilliz) - All Rights Reserved +// Unauthorized copying of this file, via any medium is strictly prohibited. +// Proprietary and confidential. +//////////////////////////////////////////////////////////////////////////////// + +#include +#include + +#include "utils.h" + +using namespace zilliz::vecwise; + +void ASSERT_STATS(engine::Status& stat) { + ASSERT_TRUE(stat.ok()); + if(!stat.ok()) { + std::cout << stat.ToString() << std::endl; + } +} + +void DBTest::SetUp() { + el::Configurations defaultConf; + defaultConf.setToDefault(); + defaultConf.set(el::Level::Debug, + el::ConfigurationType::Format, "[%thread-%datetime-%level]: %msg (%fbase:%line)"); + el::Loggers::reconfigureLogger("default", defaultConf); +} diff --git a/cpp/unittest/db/utils.h b/cpp/unittest/db/utils.h new file mode 100644 index 0000000000..3ee01bcd7f --- /dev/null +++ b/cpp/unittest/db/utils.h @@ -0,0 +1,37 @@ +//////////////////////////////////////////////////////////////////////////////// +// Copyright 上海赜睿信息科技有限公司(Zilliz) - All Rights Reserved +// Unauthorized copying of this file, via any medium is strictly prohibited. +// Proprietary and confidential. +//////////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include +#include + +#include "db/DB.h" + + +#define TIMING + +#ifdef TIMING +#define INIT_TIMER auto start = std::chrono::high_resolution_clock::now(); +#define START_TIMER start = std::chrono::high_resolution_clock::now(); +#define STOP_TIMER(name) LOG(DEBUG) << "RUNTIME of " << name << ": " << \ + std::chrono::duration_cast( \ + std::chrono::high_resolution_clock::now()-start \ + ).count() << " ms "; +#else +#define INIT_TIMER +#define START_TIMER +#define STOP_TIMER(name) +#endif + + +void ASSERT_STATS(zilliz::vecwise::engine::Status& stat); + + +class DBTest : public ::testing::Test { +protected: + virtual void SetUp() override; +}; From c1d40bfb3d396644ed6105de43f530633fc5eae0 Mon Sep 17 00:00:00 2001 From: Xu Peng Date: Mon, 29 Apr 2019 14:06:40 +0800 Subject: [PATCH 2/7] feat(db): add db factories Former-commit-id: df8ec1140cc82755e14a739cbb22fb035b3c7d18 --- cpp/src/db/Factories.cpp | 39 +++++++++++++++++++++++++++++++++++++++ cpp/src/db/Factories.h | 27 +++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 cpp/src/db/Factories.cpp create mode 100644 cpp/src/db/Factories.h diff --git a/cpp/src/db/Factories.cpp b/cpp/src/db/Factories.cpp new file mode 100644 index 0000000000..bd4ebbcadb --- /dev/null +++ b/cpp/src/db/Factories.cpp @@ -0,0 +1,39 @@ +//////////////////////////////////////////////////////////////////////////////// +// Copyright 上海赜睿信息科技有限公司(Zilliz) - All Rights Reserved +// Unauthorized copying of this file, via any medium is strictly prohibited. +// Proprietary and confidential. +//////////////////////////////////////////////////////////////////////////////// +#include +#include +#include + +#include "Factories.h" + + +namespace zilliz { +namespace vecwise { +namespace engine { + +DBMetaOptions DBMetaOptionsFactory::Build(const std::string& path) { + auto p = path; + if(p == "") { + srand(time(nullptr)); + std::stringstream ss; + ss << "/tmp/" << rand(); + p = ss.str(); + } + DBMetaOptions meta; + meta.path = p; + return meta; +} + +Options OptionsFactory::Build() { + auto meta = DBMetaOptionsFactory::Build(); + Options options; + options.meta = meta; + return options; +} + +} // namespace engine +} // namespace vecwise +} // namespace zilliz diff --git a/cpp/src/db/Factories.h b/cpp/src/db/Factories.h new file mode 100644 index 0000000000..4a6d154ab1 --- /dev/null +++ b/cpp/src/db/Factories.h @@ -0,0 +1,27 @@ +//////////////////////////////////////////////////////////////////////////////// +// Copyright 上海赜睿信息科技有限公司(Zilliz) - All Rights Reserved +// Unauthorized copying of this file, via any medium is strictly prohibited. +// Proprietary and confidential. +//////////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include +#include "db/DB.h" + +namespace zilliz { +namespace vecwise { +namespace engine { + +struct DBMetaOptionsFactory { + static DBMetaOptions Build(const std::string& path = ""); +}; + +struct OptionsFactory { + static Options Build(); +}; + + +} // namespace engine +} // namespace vecwise +} // namespace zilliz From f096e0a109e6ff3c401a89cfd93cf9d3d221301b Mon Sep 17 00:00:00 2001 From: Xu Peng Date: Mon, 29 Apr 2019 15:06:35 +0800 Subject: [PATCH 3/7] feat(db): add meta impl factory Former-commit-id: e9af01dea914b32192efe1c534e174810be5a02a --- cpp/src/db/Factories.cpp | 5 +++++ cpp/src/db/Factories.h | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/cpp/src/db/Factories.cpp b/cpp/src/db/Factories.cpp index bd4ebbcadb..3f508a6a05 100644 --- a/cpp/src/db/Factories.cpp +++ b/cpp/src/db/Factories.cpp @@ -34,6 +34,11 @@ Options OptionsFactory::Build() { return options; } +std::shared_ptr DBMetaImplFactory::Build() { + DBMetaOptions options = DBMetaOptionsFactory::Build(); + return std::shared_ptr(new meta::DBMetaImpl(options)); +} + } // namespace engine } // namespace vecwise } // namespace zilliz diff --git a/cpp/src/db/Factories.h b/cpp/src/db/Factories.h index 4a6d154ab1..ed584daa1e 100644 --- a/cpp/src/db/Factories.h +++ b/cpp/src/db/Factories.h @@ -7,7 +7,9 @@ #pragma once #include +#include #include "db/DB.h" +#include "DBMetaImpl.h" namespace zilliz { namespace vecwise { @@ -21,6 +23,9 @@ struct OptionsFactory { static Options Build(); }; +struct DBMetaImplFactory { + static std::shared_ptr Build(); +}; } // namespace engine } // namespace vecwise From 4a66580f4f5665803790d0bd7c0c963ba2256b4e Mon Sep 17 00:00:00 2001 From: Xu Peng Date: Mon, 29 Apr 2019 15:29:28 +0800 Subject: [PATCH 4/7] test(db): add meta test Former-commit-id: 9668abe43a31a04c58311c12834fe5b89da23c07 --- cpp/unittest/db/CMakeLists.txt | 3 ++- cpp/unittest/db/meta_tests.cpp | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 cpp/unittest/db/meta_tests.cpp diff --git a/cpp/unittest/db/CMakeLists.txt b/cpp/unittest/db/CMakeLists.txt index 99ef28c981..1a0d9642f0 100644 --- a/cpp/unittest/db/CMakeLists.txt +++ b/cpp/unittest/db/CMakeLists.txt @@ -27,7 +27,8 @@ set(db_test_src ${wrapper_src} ${require_files} utils.cpp - db_tests.cpp) + meta_tests.cpp) + # db_tests.cpp) cuda_add_executable(db_test ${db_test_src}) diff --git a/cpp/unittest/db/meta_tests.cpp b/cpp/unittest/db/meta_tests.cpp new file mode 100644 index 0000000000..3ad5b1b2bf --- /dev/null +++ b/cpp/unittest/db/meta_tests.cpp @@ -0,0 +1,34 @@ +//////////////////////////////////////////////////////////////////////////////// +// Copyright 上海赜睿信息科技有限公司(Zilliz) - All Rights Reserved +// Unauthorized copying of this file, via any medium is strictly prohibited. +// Proprietary and confidential. +//////////////////////////////////////////////////////////////////////////////// +#include +#include +#include + +#include "utils.h" +#include "db/DBMetaImpl.h" +#include "db/Factories.h" + +using namespace zilliz::vecwise::engine; + +TEST_F(DBTest, META_TEST) { + auto impl = DBMetaImplFactory::Build(); + + auto group_id = "meta_test_group"; + + meta::GroupSchema group; + group.group_id = group_id; + auto status = impl->add_group(group); + ASSERT_TRUE(status.ok()); + + status = impl->get_group(group); + ASSERT_TRUE(status.ok()); + + group.group_id = "not_found"; + status = impl->get_group(group); + ASSERT_TRUE(!status.ok()); + + impl->drop_all(); +} From 4b18d9fec15c707dfd1e062fc0c492f53f29bc03 Mon Sep 17 00:00:00 2001 From: Xu Peng Date: Mon, 29 Apr 2019 15:47:09 +0800 Subject: [PATCH 5/7] test(db): add more meta test Former-commit-id: b8078e972d1c08b38cd6ff272ec2cd6ab1d895b2 --- cpp/unittest/db/CMakeLists.txt | 2 +- cpp/unittest/db/db_tests.cpp | 2 +- cpp/unittest/db/meta_tests.cpp | 12 ++++++------ cpp/unittest/db/utils.cpp | 10 ++++++++++ cpp/unittest/db/utils.h | 10 ++++++++++ 5 files changed, 28 insertions(+), 8 deletions(-) diff --git a/cpp/unittest/db/CMakeLists.txt b/cpp/unittest/db/CMakeLists.txt index 1a0d9642f0..5258f3576c 100644 --- a/cpp/unittest/db/CMakeLists.txt +++ b/cpp/unittest/db/CMakeLists.txt @@ -27,8 +27,8 @@ set(db_test_src ${wrapper_src} ${require_files} utils.cpp + db_tests.cpp meta_tests.cpp) - # db_tests.cpp) cuda_add_executable(db_test ${db_test_src}) diff --git a/cpp/unittest/db/db_tests.cpp b/cpp/unittest/db/db_tests.cpp index 61c4ab45df..b3a94b181e 100644 --- a/cpp/unittest/db/db_tests.cpp +++ b/cpp/unittest/db/db_tests.cpp @@ -65,7 +65,7 @@ TEST_F(DBTest, DB_TEST) { std::stringstream ss; long count = 0; - for (auto j=0; j<8; ++j) { + for (auto j=0; j<15; ++j) { ss.str(""); db->count(group_name, count); diff --git a/cpp/unittest/db/meta_tests.cpp b/cpp/unittest/db/meta_tests.cpp index 3ad5b1b2bf..c2fbfea979 100644 --- a/cpp/unittest/db/meta_tests.cpp +++ b/cpp/unittest/db/meta_tests.cpp @@ -13,22 +13,22 @@ using namespace zilliz::vecwise::engine; -TEST_F(DBTest, META_TEST) { - auto impl = DBMetaImplFactory::Build(); +TEST_F(MetaTest, META_TEST) { + /* auto impl = DBMetaImplFactory::Build(); */ auto group_id = "meta_test_group"; meta::GroupSchema group; group.group_id = group_id; - auto status = impl->add_group(group); + auto status = impl_->add_group(group); ASSERT_TRUE(status.ok()); - status = impl->get_group(group); + status = impl_->get_group(group); ASSERT_TRUE(status.ok()); group.group_id = "not_found"; - status = impl->get_group(group); + status = impl_->get_group(group); ASSERT_TRUE(!status.ok()); - impl->drop_all(); + /* impl->drop_all(); */ } diff --git a/cpp/unittest/db/utils.cpp b/cpp/unittest/db/utils.cpp index cf105a1dc9..6b24fd926a 100644 --- a/cpp/unittest/db/utils.cpp +++ b/cpp/unittest/db/utils.cpp @@ -8,6 +8,7 @@ #include #include "utils.h" +#include "db/Factories.h" using namespace zilliz::vecwise; @@ -25,3 +26,12 @@ void DBTest::SetUp() { el::ConfigurationType::Format, "[%thread-%datetime-%level]: %msg (%fbase:%line)"); el::Loggers::reconfigureLogger("default", defaultConf); } + +void MetaTest::SetUp() { + DBTest::SetUp(); + impl_ = engine::DBMetaImplFactory::Build(); +} + +void MetaTest::TearDown() { + impl_->drop_all(); +} diff --git a/cpp/unittest/db/utils.h b/cpp/unittest/db/utils.h index 3ee01bcd7f..04329de362 100644 --- a/cpp/unittest/db/utils.h +++ b/cpp/unittest/db/utils.h @@ -10,6 +10,7 @@ #include #include "db/DB.h" +#include "db/DBMetaImpl.h" #define TIMING @@ -35,3 +36,12 @@ class DBTest : public ::testing::Test { protected: virtual void SetUp() override; }; + + +class MetaTest : public DBTest { +protected: + std::shared_ptr impl_; + + virtual void SetUp() override; + virtual void TearDown() override; +}; From 9ff65dc76c9ee033ad76b63f8a214382b541eb99 Mon Sep 17 00:00:00 2001 From: Xu Peng Date: Mon, 29 Apr 2019 15:50:52 +0800 Subject: [PATCH 6/7] test(db): group test more Former-commit-id: 31949c0387e3400c63d7387664dc8e142ce1ce17 --- cpp/unittest/db/meta_tests.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cpp/unittest/db/meta_tests.cpp b/cpp/unittest/db/meta_tests.cpp index c2fbfea979..1579954d2d 100644 --- a/cpp/unittest/db/meta_tests.cpp +++ b/cpp/unittest/db/meta_tests.cpp @@ -13,9 +13,7 @@ using namespace zilliz::vecwise::engine; -TEST_F(MetaTest, META_TEST) { - /* auto impl = DBMetaImplFactory::Build(); */ - +TEST_F(MetaTest, GROUP_TEST) { auto group_id = "meta_test_group"; meta::GroupSchema group; @@ -30,5 +28,7 @@ TEST_F(MetaTest, META_TEST) { status = impl_->get_group(group); ASSERT_TRUE(!status.ok()); - /* impl->drop_all(); */ + group.group_id = group_id; + status = impl_->add_group(group); + ASSERT_TRUE(!status.ok()); } From c26629756a0f4cf95fd0ac7cb6adb2cccc0fdd5a Mon Sep 17 00:00:00 2001 From: Xu Peng Date: Mon, 29 Apr 2019 15:56:07 +0800 Subject: [PATCH 7/7] test(db): impl more group test Former-commit-id: 5de1604a22951a2e96253f994d6af95ccd8bf019 --- cpp/unittest/db/meta_tests.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cpp/unittest/db/meta_tests.cpp b/cpp/unittest/db/meta_tests.cpp index 1579954d2d..8b57efd0c5 100644 --- a/cpp/unittest/db/meta_tests.cpp +++ b/cpp/unittest/db/meta_tests.cpp @@ -21,8 +21,12 @@ TEST_F(MetaTest, GROUP_TEST) { auto status = impl_->add_group(group); ASSERT_TRUE(status.ok()); + auto gid = group.id; + group.id = -1; status = impl_->get_group(group); ASSERT_TRUE(status.ok()); + ASSERT_EQ(group.id, gid); + ASSERT_EQ(group.group_id, group_id); group.group_id = "not_found"; status = impl_->get_group(group);