[scn] fix implement of convert_for_tx
This commit is contained in:
@ -30,6 +30,5 @@ ob_unittest(test_log_config_mgr)
|
||||
ob_unittest(test_clear_up_tmp_files)
|
||||
ob_unittest(test_log_dir_match)
|
||||
ob_unittest(test_server_log_block_mgr)
|
||||
log_unittest(test_scn)
|
||||
log_unittest(test_role_change_handler)
|
||||
log_unittest(test_log_mode_mgr)
|
||||
|
||||
@ -55,6 +55,7 @@ ob_unittest(test_ob_future)
|
||||
ob_unittest(test_qsync_lock lock/test_qsync_lock.cpp)
|
||||
ob_unittest(test_ob_occam_time_guard)
|
||||
ob_unittest(test_cluster_version)
|
||||
ob_unittest(test_scn)
|
||||
|
||||
add_subdirectory(allocator)
|
||||
add_subdirectory(auto_increment)
|
||||
|
||||
@ -110,6 +110,46 @@ TEST(TestSCN, test_scn)
|
||||
EXPECT_EQ(4611686018427387903, scn_max.get_val_for_inner_table_field());
|
||||
EXPECT_EQ(1, scn_base.get_val_for_inner_table_field());
|
||||
|
||||
//test get_val_for_tx() and get_val_for_tx()
|
||||
//
|
||||
scn1.reset();
|
||||
scn2.reset();
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, scn1.convert_for_tx(-1));
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, scn1.convert_for_tx(INT64_MAX-1));
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, scn1.convert_for_tx(4611686018427387904));
|
||||
EXPECT_EQ(OB_SUCCESS, scn1.convert_for_tx(4611686018427387903));
|
||||
EXPECT_TRUE(scn1.is_max());
|
||||
EXPECT_EQ(INT64_MAX, scn1.get_val_for_tx());
|
||||
scn1.reset();
|
||||
EXPECT_EQ(OB_SUCCESS, scn1.convert_for_tx(INT64_MAX));
|
||||
EXPECT_TRUE(scn1.is_max());
|
||||
EXPECT_EQ(INT64_MAX, scn1.get_val_for_tx());
|
||||
|
||||
EXPECT_EQ(OB_SUCCESS, scn1.convert_for_tx(0));
|
||||
EXPECT_TRUE(scn1.is_min());
|
||||
EXPECT_EQ(0, scn1.get_val_for_tx());
|
||||
|
||||
EXPECT_EQ(OB_SUCCESS, scn1.convert_for_tx(1));
|
||||
EXPECT_TRUE(scn1 == SCN::base_scn());
|
||||
EXPECT_EQ(1, scn1.get_val_for_tx());
|
||||
|
||||
EXPECT_TRUE(scn1.is_valid());
|
||||
scn1.reset();
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, scn1.convert_for_inner_table_field(-1));
|
||||
EXPECT_FALSE(scn1.is_valid());
|
||||
scn1.reset();
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, scn1.convert_for_inner_table_field(4611686018427387904));
|
||||
EXPECT_FALSE(scn1.is_valid());
|
||||
EXPECT_EQ(OB_SUCCESS, scn1.convert_for_inner_table_field(4611686018427387903));
|
||||
EXPECT_TRUE(scn1.is_valid());
|
||||
EXPECT_EQ(4611686018427387903, scn1.get_val_for_inner_table_field());
|
||||
EXPECT_EQ(OB_SUCCESS, scn1.convert_for_inner_table_field(100000));
|
||||
EXPECT_TRUE(scn1.is_valid());
|
||||
EXPECT_EQ(OB_SUCCESS, scn2.convert_for_inner_table_field(90000));
|
||||
EXPECT_TRUE(scn2.is_valid());
|
||||
|
||||
|
||||
|
||||
// Test operator <
|
||||
EXPECT_FALSE(scn1 == scn2);
|
||||
EXPECT_TRUE(scn1 == scn3);
|
||||
Reference in New Issue
Block a user