patch 4.0
This commit is contained in:
@ -11,48 +11,92 @@
|
||||
*/
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
#include "storage/ob_sstable_merge_info_mgr.h"
|
||||
#include "storage/compaction/ob_sstable_merge_info_mgr.h"
|
||||
#include "observer/omt/ob_tenant_node_balancer.h"
|
||||
|
||||
namespace oceanbase {
|
||||
namespace oceanbase
|
||||
{
|
||||
using namespace blocksstable;
|
||||
using namespace common;
|
||||
using namespace storage;
|
||||
using namespace lib;
|
||||
using namespace share;
|
||||
using namespace omt;
|
||||
|
||||
namespace unittest {
|
||||
namespace unittest
|
||||
{
|
||||
|
||||
TEST(TestSSTableMergeInfoMgr, normal)
|
||||
class TestSSTableMergeInfoMgr : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
TestSSTableMergeInfoMgr()
|
||||
: tenant_id_(1001),
|
||||
merge_info_mgr_(nullptr),
|
||||
tenant_base_(1001)
|
||||
{ }
|
||||
~TestSSTableMergeInfoMgr() {}
|
||||
void SetUp()
|
||||
{
|
||||
ObUnitInfoGetter::ObTenantConfig unit_config;
|
||||
unit_config.mode_ = lib::Worker::CompatMode::MYSQL;
|
||||
unit_config.tenant_id_ = 0;
|
||||
TenantUnits units;
|
||||
ASSERT_EQ(OB_SUCCESS, units.push_back(unit_config));
|
||||
|
||||
merge_info_mgr_ = OB_NEW(ObTenantSSTableMergeInfoMgr, ObModIds::TEST);
|
||||
tenant_base_.set(merge_info_mgr_);
|
||||
|
||||
ObTenantEnv::set_tenant(&tenant_base_);
|
||||
ASSERT_EQ(OB_SUCCESS, tenant_base_.init());
|
||||
}
|
||||
void TearDown()
|
||||
{
|
||||
merge_info_mgr_->~ObTenantSSTableMergeInfoMgr();
|
||||
merge_info_mgr_ = nullptr;
|
||||
tenant_base_.destroy();
|
||||
ObTenantEnv::set_tenant(nullptr);
|
||||
}
|
||||
private:
|
||||
const uint64_t tenant_id_;
|
||||
ObTenantSSTableMergeInfoMgr *merge_info_mgr_;
|
||||
ObTenantBase tenant_base_;
|
||||
DISALLOW_COPY_AND_ASSIGN(TestSSTableMergeInfoMgr);
|
||||
};
|
||||
|
||||
TEST_F(TestSSTableMergeInfoMgr, normal)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
ObSSTableMergeInfo merge_info;
|
||||
|
||||
// not init
|
||||
ret = ObSSTableMergeInfoMgr::get_instance().add_sstable_merge_info(merge_info);
|
||||
ObTenantSSTableMergeInfoMgr *merge_info_mgr = MTL(ObTenantSSTableMergeInfoMgr*);
|
||||
ASSERT_TRUE(nullptr != merge_info_mgr);
|
||||
//not init
|
||||
ret = MTL(ObTenantSSTableMergeInfoMgr*)->add_sstable_merge_info(merge_info);
|
||||
ASSERT_NE(OB_SUCCESS, ret);
|
||||
ret = ObSSTableMergeInfoMgr::get_instance().init(0);
|
||||
ret = MTL(ObTenantSSTableMergeInfoMgr*)->init(0);
|
||||
ASSERT_NE(OB_SUCCESS, ret);
|
||||
ret = ObSSTableMergeInfoMgr::get_instance().init(1);
|
||||
ret = MTL(ObTenantSSTableMergeInfoMgr*)->init(1);
|
||||
ASSERT_EQ(OB_SUCCESS, ret);
|
||||
ret = ObSSTableMergeInfoMgr::get_instance().init(1);
|
||||
ASSERT_NE(OB_SUCCESS, ret);
|
||||
ObSSTableMergeInfoMgr::get_instance().destroy();
|
||||
ObSSTableMergeInfoMgr::get_instance().destroy();
|
||||
|
||||
ret = ObSSTableMergeInfoMgr::get_instance().init(1);
|
||||
ASSERT_EQ(OB_SUCCESS, ret);
|
||||
ret = ObSSTableMergeInfoMgr::get_instance().add_sstable_merge_info(merge_info);
|
||||
ret = MTL(ObTenantSSTableMergeInfoMgr*)->init(1);
|
||||
ASSERT_NE(OB_SUCCESS, ret);
|
||||
|
||||
merge_info.table_id_ = 1;
|
||||
ret = ObSSTableMergeInfoMgr::get_instance().add_sstable_merge_info(merge_info);
|
||||
ret = MTL(ObTenantSSTableMergeInfoMgr*)->add_sstable_merge_info(merge_info);
|
||||
ASSERT_NE(OB_SUCCESS, ret);
|
||||
|
||||
const uint64_t tenant_id = 1001;
|
||||
merge_info.tenant_id_ = 1;
|
||||
merge_info.ls_id_ = 1;
|
||||
merge_info.tablet_id_ = 2;
|
||||
merge_info.compaction_scn_ = 100;
|
||||
ret = MTL(ObTenantSSTableMergeInfoMgr*)->add_sstable_merge_info(merge_info);
|
||||
ASSERT_EQ(OB_SUCCESS, ret);
|
||||
|
||||
merge_info.table_id_ = 2;
|
||||
ret = ObSSTableMergeInfoMgr::get_instance().add_sstable_merge_info(merge_info);
|
||||
merge_info.tablet_id_ = 3;
|
||||
ret = MTL(ObTenantSSTableMergeInfoMgr*)->add_sstable_merge_info(merge_info);
|
||||
ASSERT_EQ(OB_SUCCESS, ret);
|
||||
|
||||
// test iter
|
||||
//test iter
|
||||
ObSSTableMergeInfoIterator iter;
|
||||
ret = iter.open();
|
||||
ret = iter.open(tenant_id);
|
||||
ASSERT_EQ(OB_SUCCESS, ret);
|
||||
ret = iter.get_next_merge_info(merge_info);
|
||||
ASSERT_EQ(OB_SUCCESS, ret);
|
||||
@ -65,10 +109,10 @@ TEST(TestSSTableMergeInfoMgr, normal)
|
||||
} // end namespace unittest
|
||||
} // end namespace oceanbase
|
||||
|
||||
int main(int argc, char** argv)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
system("rm -f test_sstable_merge_info_mgr.log*");
|
||||
OB_LOGGER.set_file_name("test_sstable_merge_info_mgr.log", true, true);
|
||||
OB_LOGGER.set_file_name("test_sstable_merge_info_mgr.log");
|
||||
OB_LOGGER.set_log_level("INFO");
|
||||
testing::InitGoogleTest(&argc, argv);
|
||||
return RUN_ALL_TESTS();
|
||||
|
||||
Reference in New Issue
Block a user