69 lines
2.6 KiB
C++
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();
|
|
}
|