[FEAT MERGE] 4.x Dup Table

Co-authored-by: Minionyh <minions.yh@gmail.com>
Co-authored-by: BinChenn <binchenn.bc@gmail.com>
Co-authored-by: ChangerR <dingjinchengyx@163.com>
This commit is contained in:
KyrielightWei
2023-05-11 10:07:20 +00:00
committed by ob-robot
parent 0509c5f9fe
commit aaab6560a1
278 changed files with 20924 additions and 2857 deletions

View File

@ -15,6 +15,7 @@
#include <gmock/gmock.h>
#define private public
#include "rootserver/ob_primary_ls_service.h"
#include "share/ls/ob_ls_operator.h"
namespace oceanbase {
using namespace common;
using namespace share;
@ -261,6 +262,110 @@ TEST_F(TestPrimaryLSService, zone_balance)
ASSERT_EQ(3, count_group_by_zone.at(2));
}
TEST_F(TestPrimaryLSService, LS_FLAG)
{
int ret = OB_SUCCESS;
ObLSFlag flag;
ObLSFlagStr str;
ObLSFlagStr empty_str;
ObLSFlagStr str0("DUPLICATE");
ObLSFlagStr str1("DUPLICATE ");
ObLSFlagStr str2(" DUPLICATE ");
ObLSFlagStr str3("BLOCK_TABLET_IN");
ObLSFlagStr str4("BLOCK_TABLET_IN ");
ObLSFlagStr str5("BLOCK_TABLET_IN|DUPLICATE");
ObLSFlagStr str6("DUPLICATE|BLOCK_TABLET_IN");
ObLSFlagStr str7("BLOCK_TABLET_IN | DUPLICATE");
ObLSFlagStr str8("BLOCK_TABLET_IN,DUPLICATE");
ObLSFlagStr str9("BLOCK_TABLET_IN DUPLICATE");
ret = flag.flag_to_str(str);
ASSERT_EQ(ret, OB_SUCCESS);
ASSERT_EQ(empty_str, str);
ASSERT_EQ(0, flag.flag_);
LOG_INFO("test", K(flag), K(str));
flag.set_block_tablet_in();
ASSERT_EQ(2, flag.flag_);
ret = flag.flag_to_str(str);
ASSERT_EQ(str3, str);
LOG_INFO("test", K(flag), K(str));
flag.clear_block_tablet_in();
ASSERT_EQ(0, flag.flag_);
ret = flag.flag_to_str(str);
ASSERT_EQ(ret, OB_SUCCESS);
ASSERT_EQ(empty_str, str);
LOG_INFO("test", K(flag), K(str));
flag.set_duplicate();
ASSERT_EQ(1, flag.flag_);
ret = flag.flag_to_str(str);
ASSERT_EQ(ret, OB_SUCCESS);
ASSERT_EQ(str0, str);
LOG_INFO("test", K(flag), K(str));
flag.set_block_tablet_in();
ASSERT_EQ(3, flag.flag_);
ret = flag.flag_to_str(str);
ASSERT_EQ(ret, OB_SUCCESS);
ASSERT_EQ(str6, str);
LOG_INFO("test", K(flag), K(str));
flag.clear_block_tablet_in();
ASSERT_EQ(1, flag.flag_);
ret = flag.flag_to_str(str);
ASSERT_EQ(ret, OB_SUCCESS);
ASSERT_EQ(str0, str);
LOG_INFO("test", K(flag), K(str));
ret = flag.str_to_flag(empty_str.str());
ASSERT_EQ(ret, OB_SUCCESS);
ASSERT_EQ(0, flag.flag_);
LOG_INFO("test", K(flag));
ret = flag.str_to_flag(str0.str());
ASSERT_EQ(ret, OB_SUCCESS);
ASSERT_EQ(1, flag.flag_);
LOG_INFO("test", K(flag));
ret = flag.str_to_flag(str1.str());
ASSERT_EQ(OB_ERR_UNEXPECTED, ret);
ret = flag.str_to_flag(str2.str());
ASSERT_EQ(OB_ERR_UNEXPECTED, ret);
ret = flag.str_to_flag(str3.str());
ASSERT_EQ(ret, OB_SUCCESS);
ASSERT_EQ(2, flag.flag_);
LOG_INFO("test", K(flag));
ret = flag.str_to_flag(str4.str());
ASSERT_EQ(OB_ERR_UNEXPECTED, ret);
ret = flag.str_to_flag(str5.str());
ASSERT_EQ(ret, OB_SUCCESS);
ASSERT_EQ(3, flag.flag_);
LOG_INFO("test", K(flag));
ret = flag.str_to_flag(str6.str());
ASSERT_EQ(ret, OB_SUCCESS);
ASSERT_EQ(3, flag.flag_);
LOG_INFO("test", K(flag));
ret = flag.str_to_flag(str7.str());
ASSERT_EQ(OB_ERR_UNEXPECTED, ret);
LOG_INFO("test", K(flag));
ret = flag.str_to_flag(str8.str());
ASSERT_EQ(OB_ERR_UNEXPECTED, ret);
ret = flag.str_to_flag(str9.str());
ASSERT_EQ(OB_ERR_UNEXPECTED, ret);
}
}
}