Files
oceanbase/unittest/logminer/test_ob_log_miner_file_manager.cpp
2024-08-31 12:52:27 +00:00

69 lines
2.6 KiB
C++

/**
* Copyright (c) 2023 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 private public
#include "ob_log_miner_file_manager.h"
#undef private
#include "share/io/ob_io_manager.h"
#include "share/ob_device_manager.h"
#include "gtest/gtest.h"
namespace oceanbase
{
namespace oblogminer
{
TEST(test_ob_log_miner_file_manager, GenFileHeader)
{
ObLogMinerFileManager manager;
const int64_t path_size = 100;
char cwd_buf[path_size];
ObArenaAllocator alloc;
char *header = nullptr;
int64_t data_len = 0;
EXPECT_NE(nullptr, getcwd(cwd_buf, path_size));
char path[OB_MAX_URI_LENGTH];
char rm_dir_command[OB_MAX_URI_LENGTH];
EXPECT_EQ(OB_SUCCESS, databuff_printf(path, sizeof(path), "file://%s/logminer_output", cwd_buf));
EXPECT_EQ(OB_SUCCESS, databuff_printf(rm_dir_command, sizeof(rm_dir_command), "rm -rf %s/logminer_output", cwd_buf));
EXPECT_EQ(OB_SUCCESS,
manager.init(path, RecordFileFormat::CSV, ObLogMinerFileManager::FileMgrMode::ANALYZE));
EXPECT_EQ(OB_SUCCESS, manager.generate_data_file_header_(alloc, header, data_len));
EXPECT_STREQ(header, "TENANT_ID,TRANS_ID,PRIMARY_KEY,TENANT_NAME,DATABASE_NAME,"
"TABLE_NAME,OPERATION,OPERATION_CODE,COMMIT_SCN,COMMIT_TIMESTAMP,SQL_REDO,SQL_UNDO,ORG_CLUSTER_ID\n");
system(rm_dir_command);
}
}
}
int main(int argc, char **argv)
{
// testing::FLAGS_gtest_filter = "DO_NOT_RUN";
system("rm -f test_ob_log_miner_file_manager.log");
oceanbase::ObLogger &logger = oceanbase::ObLogger::get_logger();
logger.set_file_name("test_ob_log_miner_file_manager.log", true, false);
logger.set_log_level("DEBUG");
logger.set_enable_async_log(false);
EXPECT_EQ(OB_SUCCESS, ObDeviceManager::get_instance().init_devices_env());
EXPECT_EQ(OB_SUCCESS, ObIOManager::get_instance().init(1000000000));
EXPECT_EQ(OB_SUCCESS, ObIOManager::get_instance().start());
// ObTenantIOConfig tenant_io_config = ObTenantIOConfig::default_instance();
// oceanbase::share::ObTenantBase *tenant_base = MTL_NEW(oceanbase::share::ObTenantBase, "unittest", OB_SERVER_TENANT_ID);
// ObTenantIOManager *tio_manager = NULL;
// ObTenantIOManager::mtl_new(tio_manager);
// ObTenantIOManager::mtl_init(tio_manager);
testing::InitGoogleTest(&argc,argv);
return RUN_ALL_TESTS();
}