oceanbase/unittest/share/test_cluster_version.cpp
wangzelin.wzl 93a1074b0c patch 4.0
2022-10-24 17:57:12 +08:00

547 lines
20 KiB
C++

/**
* Copyright (c) 2021 OceanBase
* OceanBase CE is licensed under Mulan PubL v2.
* You can use this software according to the terms and conditions of the Mulan PubL v2.
* You may obtain a copy of Mulan PubL v2 at:
* http://license.coscl.org.cn/MulanPubL-2.0
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PubL v2 for more details.
*/
#define USING_LOG_PREFIX SHARE
#include "lib/ob_define.h"
#include "lib/ob_errno.h"
#include "lib/oblog/ob_log.h"
#include "share/ob_cluster_version.h"
#include <gtest/gtest.h>
namespace oceanbase
{
namespace share
{
using namespace common;
using namespace oceanbase::lib;
class TestClusterVersion: public ::testing::Test
{
public:
virtual void SetUp() {}
virtual void TearDown() {}
};
TEST_F(TestClusterVersion, init)
{
uint64_t version = 0;
version = cal_version(1, 4, 0, 79);
ObClusterVersion ver_1;
ASSERT_EQ(ver_1.init(version), OB_SUCCESS);
version = cal_version(1, 4, 79, 0);
ObClusterVersion ver_2;
ASSERT_EQ(ver_2.init(version), OB_INVALID_ARGUMENT);
version = cal_version(3, 2, 0, 0);
ObClusterVersion ver_3;
ASSERT_EQ(ver_3.init(version), OB_SUCCESS);
version = cal_version(3, 2, 0, 1);
ObClusterVersion ver_4;
ASSERT_EQ(ver_4.init(version), OB_SUCCESS);
version = cal_version(3, 2, 0, 2);
ObClusterVersion ver_5;
ASSERT_EQ(ver_5.init(version), OB_SUCCESS);
version = cal_version(3, 2, 1, 0);
ObClusterVersion ver_6;
ASSERT_EQ(ver_6.init(version), OB_INVALID_ARGUMENT);
version = cal_version(3, 2, 1, 1);
ObClusterVersion ver_18;
ASSERT_EQ(ver_18.init(version), OB_INVALID_ARGUMENT);
version = cal_version(3, 2, 2, 0);
ObClusterVersion ver_7;
ASSERT_EQ(ver_7.init(version), OB_INVALID_ARGUMENT);
version = cal_version(3, 2, 2, 1);
ObClusterVersion ver_19;
ASSERT_EQ(ver_19.init(version), OB_INVALID_ARGUMENT);
version = cal_version(3, 2, 0, 3);
ObClusterVersion ver_8;
ASSERT_EQ(ver_8.init(version), OB_INVALID_ARGUMENT);
version = cal_version(3, 2, 0, 4);
ObClusterVersion ver_17;
ASSERT_EQ(ver_17.init(version), OB_INVALID_ARGUMENT);
// major_patch_version(3rd) can be greator than 0 when:
// - cluster_version >= "3.3"
// - cluster_version >= "3.2.3.0"
version = cal_version(3, 2, 3, 0);
ObClusterVersion ver_9;
ASSERT_EQ(ver_9.init(version), OB_SUCCESS);
version = cal_version(3, 2, 3, 1);
ObClusterVersion ver_10;
ASSERT_EQ(ver_10.init(version), OB_SUCCESS);
version = cal_version(3, 2, 4, 0);
ObClusterVersion ver_11;
ASSERT_EQ(ver_11.init(version), OB_SUCCESS);
version = cal_version(3, 2, 4, 1);
ObClusterVersion ver_12;
ASSERT_EQ(ver_12.init(version), OB_SUCCESS);
version = cal_version(3, 3, 0, 0);
ObClusterVersion ver_13;
ASSERT_EQ(ver_13.init(version), OB_SUCCESS);
version = cal_version(3, 3, 1, 0);
ObClusterVersion ver_14;
ASSERT_EQ(ver_14.init(version), OB_SUCCESS);
version = cal_version(3, 3, 0, 1);
ObClusterVersion ver_15;
ASSERT_EQ(ver_15.init(version), OB_SUCCESS);
version = cal_version(3, 3, 1, 1);
ObClusterVersion ver_16;
ASSERT_EQ(ver_16.init(version), OB_SUCCESS);
}
TEST_F(TestClusterVersion, refresh_cluster_version)
{
// 1.4.79
ObClusterVersion ver_1;
ASSERT_EQ(ver_1.refresh_cluster_version("1.4.0.79"), OB_INVALID_ARGUMENT);
ObClusterVersion ver_2;
ASSERT_EQ(ver_2.refresh_cluster_version("1.4.79.0"), OB_SUCCESS);
ObClusterVersion ver_3;
ASSERT_EQ(ver_3.refresh_cluster_version("1.4.79"), OB_SUCCESS);
ASSERT_EQ(ver_2.get_cluster_version(), ver_3.get_cluster_version());
// 3.2
ObClusterVersion ver_4;
ASSERT_EQ(ver_4.refresh_cluster_version("3.2.0"), OB_SUCCESS);
ObClusterVersion ver_5;
ASSERT_EQ(ver_5.refresh_cluster_version("3.2.0.0"), OB_SUCCESS);
ASSERT_EQ(ver_4.get_cluster_version(), ver_5.get_cluster_version());
// 3.2.1
ObClusterVersion ver_6;
ASSERT_EQ(ver_6.refresh_cluster_version("3.2.0.1"), OB_INVALID_ARGUMENT);
ObClusterVersion ver_7;
ASSERT_EQ(ver_7.refresh_cluster_version("3.2.1.0"), OB_SUCCESS);
ObClusterVersion ver_8;
ASSERT_EQ(ver_8.refresh_cluster_version("3.2.1"), OB_SUCCESS);
ASSERT_EQ(ver_7.get_cluster_version(), ver_8.get_cluster_version());
// 3.2.1.1
ObClusterVersion ver_26;
ASSERT_EQ(ver_26.refresh_cluster_version("3.2.1.1"), OB_INVALID_ARGUMENT);
// 3.2.2
ObClusterVersion ver_9;
ASSERT_EQ(ver_9.refresh_cluster_version("3.2.0.2"), OB_INVALID_ARGUMENT);
ObClusterVersion ver_10;
ASSERT_EQ(ver_10.refresh_cluster_version("3.2.2.0"), OB_SUCCESS);
ObClusterVersion ver_11;
ASSERT_EQ(ver_11.refresh_cluster_version("3.2.2"), OB_SUCCESS);
ASSERT_EQ(ver_10.get_cluster_version(), ver_11.get_cluster_version());
// 3.2.2.1
ObClusterVersion ver_25;
ASSERT_EQ(ver_25.refresh_cluster_version("3.2.2.1"), OB_INVALID_ARGUMENT);
// cluster version which is less than "3.2.3":
// - should be format as "a.b.c" or "a.b.c.0"
// - "a.b.0.c" is invalid
// 3.2.3
ObClusterVersion ver_12;
ASSERT_EQ(ver_12.refresh_cluster_version("3.2.0.3"), OB_INVALID_ARGUMENT);
ObClusterVersion ver_13;
ASSERT_EQ(ver_13.refresh_cluster_version("3.2.3.0"), OB_SUCCESS);
ObClusterVersion ver_14;
ASSERT_EQ(ver_14.refresh_cluster_version("3.2.3"), OB_SUCCESS);
ASSERT_EQ(ver_13.get_cluster_version(), ver_14.get_cluster_version());
// 3.2.3.1
ObClusterVersion ver_27;
ASSERT_EQ(ver_27.refresh_cluster_version("3.2.3.1"), OB_SUCCESS);
// 3.2.4
ObClusterVersion ver_15;
ASSERT_EQ(ver_15.refresh_cluster_version("3.2.0.4"), OB_INVALID_ARGUMENT);
ObClusterVersion ver_16;
ASSERT_EQ(ver_16.refresh_cluster_version("3.2.4.0"), OB_SUCCESS);
ObClusterVersion ver_17;
ASSERT_EQ(ver_17.refresh_cluster_version("3.2.4"), OB_SUCCESS);
ASSERT_EQ(ver_16.get_cluster_version(), ver_17.get_cluster_version());
// 3.2.4.1
ObClusterVersion ver_18;
ASSERT_EQ(ver_18.refresh_cluster_version("3.2.4.1"), OB_SUCCESS);
// 3.3.x
ObClusterVersion ver_19;
ASSERT_EQ(ver_19.refresh_cluster_version("3.3.0"), OB_SUCCESS);
ObClusterVersion ver_20;
ASSERT_EQ(ver_20.refresh_cluster_version("3.3.0.0"), OB_SUCCESS);
ASSERT_EQ(ver_19.get_cluster_version(), ver_20.get_cluster_version());
ObClusterVersion ver_21;
ASSERT_EQ(ver_21.refresh_cluster_version("3.3.0.1"), OB_SUCCESS);
ObClusterVersion ver_22;
ASSERT_EQ(ver_22.refresh_cluster_version("3.3.1.0"), OB_SUCCESS);
ObClusterVersion ver_23;
ASSERT_EQ(ver_23.refresh_cluster_version("3.3.1"), OB_SUCCESS);
ASSERT_NE(ver_21.get_cluster_version(), ver_22.get_cluster_version());
ASSERT_EQ(ver_22.get_cluster_version(), ver_23.get_cluster_version());
ObClusterVersion ver_24;
ASSERT_EQ(ver_24.refresh_cluster_version("3.3.1.1"), OB_SUCCESS);
}
TEST_F(TestClusterVersion, encode)
{
uint64_t version = 0;
// for cluster_version < 3.2.3, cluster version string which like "a.b.c" or "a.b.c.0" is encoded as "a|b|0|c".
version = cal_version(1, 4, 0, 79);
ObClusterVersion ver_1;
ASSERT_EQ(ver_1.init(version), OB_SUCCESS);
ObClusterVersion ver_2;
ASSERT_EQ(ver_2.refresh_cluster_version("1.4.79.0"), OB_SUCCESS);
ASSERT_EQ(ver_1.get_cluster_version(), ver_2.get_cluster_version());
version = cal_version(3, 2, 0, 1);
ObClusterVersion ver_3;
ASSERT_EQ(ver_3.init(version), OB_SUCCESS);
ObClusterVersion ver_4;
ASSERT_EQ(ver_4.refresh_cluster_version("3.2.1.0"), OB_SUCCESS);
ASSERT_EQ(ver_3.get_cluster_version(), ver_4.get_cluster_version());
version = cal_version(3, 2, 0, 2);
ObClusterVersion ver_5;
ASSERT_EQ(ver_5.init(version), OB_SUCCESS);
ObClusterVersion ver_6;
ASSERT_EQ(ver_6.refresh_cluster_version("3.2.2.0"), OB_SUCCESS);
ASSERT_EQ(ver_5.get_cluster_version(), ver_6.get_cluster_version());
// for cluster_version >= 3.2.3, cluster_version string which like "a.b.c.d" is encoded as "a|b|c|d".
version = cal_version(3, 2, 3, 0);
ObClusterVersion ver_7;
ASSERT_EQ(ver_7.init(version), OB_SUCCESS);
ObClusterVersion ver_8;
ASSERT_EQ(ver_8.refresh_cluster_version("3.2.3.0"), OB_SUCCESS);
ASSERT_EQ(ver_7.get_cluster_version(), ver_8.get_cluster_version());
version = cal_version(3, 2, 3, 1);
ObClusterVersion ver_9;
ASSERT_EQ(ver_9.init(version), OB_SUCCESS);
ObClusterVersion ver_10;
ASSERT_EQ(ver_10.refresh_cluster_version("3.2.3.1"), OB_SUCCESS);
ASSERT_EQ(ver_9.get_cluster_version(), ver_10.get_cluster_version());
version = cal_version(3, 2, 4, 0);
ObClusterVersion ver_11;
ASSERT_EQ(ver_11.init(version), OB_SUCCESS);
ObClusterVersion ver_12;
ASSERT_EQ(ver_12.refresh_cluster_version("3.2.4.0"), OB_SUCCESS);
ASSERT_EQ(ver_11.get_cluster_version(), ver_12.get_cluster_version());
version = cal_version(3, 2, 4, 1);
ObClusterVersion ver_13;
ASSERT_EQ(ver_13.init(version), OB_SUCCESS);
ObClusterVersion ver_14;
ASSERT_EQ(ver_14.refresh_cluster_version("3.2.4.1"), OB_SUCCESS);
ASSERT_EQ(ver_13.get_cluster_version(), ver_14.get_cluster_version());
version = cal_version(3, 3, 0, 1);
ObClusterVersion ver_15;
ASSERT_EQ(ver_15.init(version), OB_SUCCESS);
version = cal_version(3, 3, 1, 0);
ObClusterVersion ver_16;
ASSERT_EQ(ver_16.init(version), OB_SUCCESS);
ObClusterVersion ver_17;
ASSERT_EQ(ver_17.refresh_cluster_version("3.3.0.1"), OB_SUCCESS);
ObClusterVersion ver_18;
ASSERT_EQ(ver_18.refresh_cluster_version("3.3.1.0"), OB_SUCCESS);
ASSERT_EQ(ver_15.get_cluster_version(), ver_17.get_cluster_version());
ASSERT_EQ(ver_16.get_cluster_version(), ver_18.get_cluster_version());
ASSERT_NE(ver_15.get_cluster_version(), ver_16.get_cluster_version());
}
TEST_F(TestClusterVersion, is_valid)
{
ASSERT_EQ(ObClusterVersion::is_valid("1.4.0.79"), OB_INVALID_ARGUMENT);
ASSERT_EQ(ObClusterVersion::is_valid("1.4.79.0"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("1.4.79"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.0.0"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.0"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.0.1"), OB_INVALID_ARGUMENT);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.1.0"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.1"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.1.1"), OB_INVALID_ARGUMENT);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.0.2"), OB_INVALID_ARGUMENT);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.2.0"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.2"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.2.1"), OB_INVALID_ARGUMENT);
// for cluster_version < "3.2.3", 4th cluster version should be 0.
ASSERT_EQ(ObClusterVersion::is_valid("3.2.0.3"), OB_INVALID_ARGUMENT);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.3.0"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.3"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.3.1"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.0.4"), OB_INVALID_ARGUMENT);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.4.0"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.4"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.2.4.1"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.3.0.0"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.3.0.1"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.3.1.0"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.3.1"), OB_SUCCESS);
ASSERT_EQ(ObClusterVersion::is_valid("3.3.1.1"), OB_SUCCESS);
}
TEST_F(TestClusterVersion, get_version)
{
uint64_t version = 0;
uint64_t version_1 = 0;
uint64_t res_version = 0;
// 1.4.79
version = cal_version(1, 4, 0, 79); // right
version_1 = cal_version(1, 4, 79, 0); // wrong
ASSERT_EQ(ObClusterVersion::get_version("1.4.0.79", res_version), OB_INVALID_ARGUMENT);
ASSERT_EQ(ObClusterVersion::get_version("1.4.79.0", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
ASSERT_NE(version_1, res_version);
ASSERT_EQ(ObClusterVersion::get_version("1.4.79", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
ASSERT_NE(version_1, res_version);
// 3.2
version = cal_version(3, 2, 0, 0);
ASSERT_EQ(ObClusterVersion::get_version("3.2.0.0", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
ASSERT_EQ(ObClusterVersion::get_version("3.2.0", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
// 3.2.1
version = cal_version(3, 2, 0, 1); // right
version_1 = cal_version(3, 2, 1, 0); // wrong
ASSERT_EQ(ObClusterVersion::get_version("3.2.1.1", res_version), OB_INVALID_ARGUMENT);
ASSERT_EQ(ObClusterVersion::get_version("3.2.0.1", res_version), OB_INVALID_ARGUMENT);
ASSERT_EQ(ObClusterVersion::get_version("3.2.1.0", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
ASSERT_NE(version_1, res_version);
ASSERT_EQ(ObClusterVersion::get_version("3.2.1", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
ASSERT_NE(version_1, res_version);
// 3.2.2
version = cal_version(3, 2, 0, 2); // right
version_1 = cal_version(3, 2, 2, 0); // wrong
ASSERT_EQ(ObClusterVersion::get_version("3.2.2.1", res_version), OB_INVALID_ARGUMENT);
ASSERT_EQ(ObClusterVersion::get_version("3.2.0.2", res_version), OB_INVALID_ARGUMENT);
ASSERT_EQ(ObClusterVersion::get_version("3.2.2.0", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
ASSERT_NE(version_1, res_version);
ASSERT_EQ(ObClusterVersion::get_version("3.2.2", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
ASSERT_NE(version_1, res_version);
// cluster version which is less than "3.2.3":
// - should be format as "a.b.c" or "a.b.c.0"
// - "a.b.0.c" is invalid
// 3.2.3
version = cal_version(3, 2, 3, 0); // right
version_1 = cal_version(3, 2, 0, 3); // wrong
ASSERT_EQ(ObClusterVersion::get_version("3.2.0.3", res_version), OB_INVALID_ARGUMENT);
ASSERT_EQ(ObClusterVersion::get_version("3.2.3.0", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
ASSERT_NE(version_1, res_version);
ASSERT_EQ(ObClusterVersion::get_version("3.2.3", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
ASSERT_NE(version_1, res_version);
// 3.2.3.1
version = cal_version(3, 2, 3, 1); // right
ASSERT_EQ(ObClusterVersion::get_version("3.2.3.1", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
// 3.2.4.0
version = cal_version(3, 2, 4, 0); // right
version_1 = cal_version(3, 2, 0, 4); // wrong
ASSERT_EQ(ObClusterVersion::get_version("3.2.0.4", res_version), OB_INVALID_ARGUMENT);
ASSERT_EQ(ObClusterVersion::get_version("3.2.4.0", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
ASSERT_NE(version_1, res_version);
ASSERT_EQ(ObClusterVersion::get_version("3.2.4", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
ASSERT_NE(version_1, res_version);
// 3.2.4.1
version = cal_version(3, 2, 4, 1);
ASSERT_EQ(ObClusterVersion::get_version("3.2.4.1", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
// 3.3
version = cal_version(3, 3, 0, 0);
ASSERT_EQ(ObClusterVersion::get_version("3.3.0.0", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
ASSERT_EQ(ObClusterVersion::get_version("3.3.0", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
// 3.3.0.1
version = cal_version(3, 3, 0, 1); // right
version_1 = cal_version(3, 3, 1, 0); // wrong
ASSERT_EQ(ObClusterVersion::get_version("3.3.0.1", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
ASSERT_NE(version_1, res_version);
// 3.3.1
version = cal_version(3, 3, 1, 0); // right
version_1 = cal_version(3, 3, 0, 1); // wrong
ASSERT_EQ(ObClusterVersion::get_version("3.3.1.0", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
ASSERT_NE(version_1, res_version);
ASSERT_EQ(ObClusterVersion::get_version("3.3.1", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
ASSERT_NE(version_1, res_version);
// 3.3.1.1
version = cal_version(3, 3, 1, 1);
ASSERT_EQ(ObClusterVersion::get_version("3.3.1.1", res_version), OB_SUCCESS);
ASSERT_EQ(version, res_version);
}
TEST_F(TestClusterVersion, print_version_str)
{
char version_str[OB_CLUSTER_VERSION_LENGTH] = {0};
uint64_t version = 0;
int64_t pos = 0;
// 1.4.79
version = cal_version(1, 4, 79, 0);
ASSERT_EQ(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
version = cal_version(1, 4, 0, 79);
ASSERT_NE(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
ASSERT_EQ(0, STRNCMP(version_str, "1.4.79", OB_CLUSTER_VERSION_LENGTH));
// 3.2
version = cal_version(3, 2, 0, 0);
ASSERT_NE(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
ASSERT_EQ(0, STRNCMP(version_str, "3.2.0", OB_CLUSTER_VERSION_LENGTH));
// 3.2.1
version = cal_version(3, 2, 1, 0);
ASSERT_EQ(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
version = cal_version(3, 2, 0, 1);
ASSERT_NE(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
ASSERT_EQ(0, STRNCMP(version_str, "3.2.1", OB_CLUSTER_VERSION_LENGTH));
// 3.2.1.1
version = cal_version(3, 2, 1, 1);
ASSERT_EQ(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
// 3.2.2
version = cal_version(3, 2, 2, 0);
ASSERT_EQ(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
version = cal_version(3, 2, 0, 2);
ASSERT_NE(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
ASSERT_EQ(0, STRNCMP(version_str, "3.2.2", OB_CLUSTER_VERSION_LENGTH));
// 3.2.2.1
version = cal_version(3, 2, 2, 1);
ASSERT_EQ(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
// 3.2.3
version = cal_version(3, 2, 0, 3);
ASSERT_EQ(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
version = cal_version(3, 2, 3, 0);
ASSERT_NE(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
ASSERT_EQ(0, STRNCMP(version_str, "3.2.3.0", OB_CLUSTER_VERSION_LENGTH));
// 3.2.3.1
version = cal_version(3, 2, 3, 1);
ASSERT_NE(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
ASSERT_EQ(0, STRNCMP(version_str, "3.2.3.1", OB_CLUSTER_VERSION_LENGTH));
// 3.2.4
version = cal_version(3, 2, 0, 4);
ASSERT_EQ(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
version = cal_version(3, 2, 4, 0);
ASSERT_NE(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
ASSERT_EQ(0, STRNCMP(version_str, "3.2.4.0", OB_CLUSTER_VERSION_LENGTH));
// 3.2.4.1
version = cal_version(3, 2, 4, 1);
ASSERT_NE(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
ASSERT_EQ(0, STRNCMP(version_str, "3.2.4.1", OB_CLUSTER_VERSION_LENGTH));
// 3.3
version = cal_version(3, 3, 0, 0);
ASSERT_NE(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
ASSERT_EQ(0, STRNCMP(version_str, "3.3.0.0", OB_CLUSTER_VERSION_LENGTH));
// 3.3.0.1
version = cal_version(3, 3, 0, 1);
ASSERT_NE(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
ASSERT_EQ(0, STRNCMP(version_str, "3.3.0.1", OB_CLUSTER_VERSION_LENGTH));
// 3.3.1
version = cal_version(3, 3, 1, 0);
ASSERT_NE(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
ASSERT_EQ(0, STRNCMP(version_str, "3.3.1.0", OB_CLUSTER_VERSION_LENGTH));
// 3.3.1.1
version = cal_version(3, 3, 1, 1);
ASSERT_NE(OB_INVALID_INDEX, ObClusterVersion::print_version_str(version_str, OB_CLUSTER_VERSION_LENGTH, version));
ASSERT_EQ(0, STRNCMP(version_str, "3.3.1.1", OB_CLUSTER_VERSION_LENGTH));
}
} // end share
} // end oceanbase
int main(int argc, char **argv)
{
oceanbase::common::ObLogger::get_logger().set_log_level("INFO");
OB_LOGGER.set_log_level("INFO");
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}