本文整理汇总了C++中ref_ptr::clear_file_exist方法的典型用法代码示例。如果您正苦于以下问题:C++ ref_ptr::clear_file_exist方法的具体用法?C++ ref_ptr::clear_file_exist怎么用?C++ ref_ptr::clear_file_exist使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ref_ptr
的用法示例。
在下文中一共展示了ref_ptr::clear_file_exist方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: read_backup_metadata_test
void replication_service_test_app::read_backup_metadata_test()
{
cold_backup_context_ptr backup_context =
new cold_backup_context(nullptr, request, concurrent_uploading_file_cnt);
backup_context->start_check();
backup_context->block_service = block_service.get();
backup_context->backup_root = backup_root;
backup_context->_status.store(cold_backup_status::ColdBackupUploading);
// case1: metadata is valid
// stop with create current_chkpt_file fail
{
std::cout << "testing read_backup_metadata_file, with context of metadata is valid..."
<< std::endl;
blob buf = ::json::json_forwarder<cold_backup_metadata>::encode(backup_context->_metadata);
std::string context(buf.data(), buf.length());
backup_metadata_file->set_context(context);
backup_metadata_file->file_exist("test_md5", 10);
block_service->enable_create_file_fail = true;
ref_ptr<block_file> file_handle = backup_metadata_file.get();
backup_context->read_backup_metadata(file_handle);
ASSERT_TRUE(backup_context->status() == cold_backup_status::ColdBackupFailed);
block_service->enable_create_file_fail = false;
backup_metadata_file->clear_context();
backup_metadata_file->clear_file_exist();
}
backup_context->_status.store(cold_backup_status::ColdBackupUploading);
// case2: metadata is invalid
// stop with create current_chkpt_file fail
{
std::cout << "testing read_backup_metada_file, with context of metadata is invalid..."
<< std::endl;
backup_metadata_file->file_exist("test_md5", 10);
backup_metadata_file->set_context("{\"key\":value\"");
block_service->enable_create_file_fail = true;
ref_ptr<block_file> file_handle = backup_metadata_file.get();
backup_context->read_backup_metadata(file_handle);
ASSERT_TRUE(backup_context->status() == cold_backup_status::ColdBackupFailed);
block_service->enable_create_file_fail = false;
backup_metadata_file->clear_file_exist();
backup_metadata_file->clear_context();
}
// case3: read metadata fail
// this case has been already tested before, here just ignore
ASSERT_TRUE(backup_context->get_count() == 1);
ASSERT_TRUE(current_chkpt_file->get_count() == 1);
ASSERT_TRUE(backup_metadata_file->get_count() == 1);
ASSERT_TRUE(regular_file->get_count() == 1);
}
示例2: upload_checkpoint_to_remote_test
void replication_service_test_app::upload_checkpoint_to_remote_test()
{
cold_backup_context_ptr backup_context =
new cold_backup_context(nullptr, request, concurrent_uploading_file_cnt);
backup_context->start_check();
backup_context->block_service = block_service.get();
backup_context->backup_root = backup_root;
backup_context->_status.store(cold_backup_status::ColdBackupChecking);
backup_context->_have_check_upload_status.store(false);
backup_context->_upload_status.store(cold_backup_context::upload_status::UploadInvalid);
backup_context->_status.store(cold_backup_status::ColdBackupUploading);
// case1: create metadata_file fail
{
std::cout << "testing upload_checkpoint_to_remote, stop with create metadata fail..."
<< std::endl;
block_service->enable_create_file_fail = true;
backup_context->upload_checkpoint_to_remote();
ASSERT_TRUE(backup_context->status() == cold_backup_status::ColdBackupFailed);
block_service->enable_create_file_fail = false;
}
backup_context->_status.store(cold_backup_status::ColdBackupUploading);
// case2: create metadata succeed, and metadata is exist
// this case will stop when call read_backup_metadata with reason read file fail
{
std::cout << "testing upload_checkpoint_to_remote, stop with read metadata file fail..."
<< std::endl;
backup_context->_have_check_upload_status.store(false);
backup_context->_upload_status.store(cold_backup_context::upload_status::UploadInvalid);
std::string md5 = "test_md5";
int64_t size = 10;
backup_metadata_file->enable_read_fail = true;
backup_metadata_file->file_exist(md5, size);
backup_context->upload_checkpoint_to_remote();
ASSERT_TRUE(backup_context->status() == cold_backup_status::ColdBackupFailed);
backup_metadata_file->clear_file_exist();
backup_metadata_file->enable_read_fail = false;
}
backup_context->_status.store(cold_backup_status::ColdBackupUploading);
// case3: create metadata succeed, but metadata is not exist
// this case will stop after call write_metadata_file with write fail
{
std::cout << "testing upload_chekpoint_to_remote, stop with create metadata file fail..."
<< std::endl;
backup_context->_have_check_upload_status.store(false);
backup_context->_upload_status.store(cold_backup_context::upload_status::UploadInvalid);
backup_metadata_file->enable_write_fail = true;
backup_context->upload_checkpoint_to_remote();
ASSERT_TRUE(backup_context->status() == cold_backup_status::ColdBackupFailed);
backup_metadata_file->enable_write_fail = false;
}
ASSERT_TRUE(backup_context->get_count() == 1);
ASSERT_TRUE(current_chkpt_file->get_count() == 1);
ASSERT_TRUE(backup_metadata_file->get_count() == 1);
ASSERT_TRUE(regular_file->get_count() == 1);
}
示例3: read_current_chkpt_file_test
void replication_service_test_app::read_current_chkpt_file_test()
{
cold_backup_context_ptr backup_context =
new cold_backup_context(nullptr, request, concurrent_uploading_file_cnt);
backup_context->_status.store(cold_backup_status::ColdBackupChecking);
backup_context->block_service = block_service.get();
backup_context->backup_root = backup_root;
// read current_chkpt_file fail has been already tested in check_backup_on_remote_test()
// case1: current_chkpt_file is not exist
{
std::cout << "testing read_current_chkpt_file(file not exist)..." << std::endl;
current_chkpt_file->clear_file_exist();
block_file_ptr file_handle = current_chkpt_file.get();
backup_context->read_current_chkpt_file(file_handle);
ASSERT_TRUE(backup_context->status() == cold_backup_status::ColdBackupChecked);
}
backup_context->_status.store(cold_backup_status::ColdBackupChecking);
// case2: current_chkpt_file exist
// this case will call remote_chkpt_dir_exist(), so we make list_dir fail to stop
{
std::cout
<< "testing read_current_chkpt_file(file exist and check whether chkpt_dir is exist)..."
<< std::endl;
current_chkpt_file->file_exist("123", 10);
current_chkpt_file->set_context("test_dir");
block_service->enable_list_dir_fail = true;
block_file_ptr file_handle = current_chkpt_file.get();
backup_context->read_current_chkpt_file(file_handle);
ASSERT_TRUE(backup_context->status() == cold_backup_status::ColdBackupFailed);
current_chkpt_file->clear_file_exist();
current_chkpt_file->clear_context();
block_service->enable_list_dir_fail = false;
}
ASSERT_TRUE(backup_context->get_count() == 1);
ASSERT_TRUE(current_chkpt_file->get_count() == 1);
ASSERT_TRUE(backup_metadata_file->get_count() == 1);
ASSERT_TRUE(regular_file->get_count() == 1);
}
示例4: check_backup_on_remote_test
void replication_service_test_app::check_backup_on_remote_test()
{
cold_backup_context_ptr backup_context =
new cold_backup_context(nullptr, request, concurrent_uploading_file_cnt);
backup_context->start_check();
backup_context->block_service = block_service.get();
backup_context->backup_root = backup_root;
// case1 : current_chkpt_file don't exist
{
std::cout << "testing current_chkpt_file don't exist..." << std::endl;
backup_context->check_backup_on_remote();
ASSERT_TRUE(backup_context->status() == cold_backup_status::ColdBackupChecked);
}
backup_context->_status.store(cold_backup_status::ColdBackupChecking);
// case2 : create current_chkpt_file fail
{
std::cout << "testing create current_chkpt_file fail..." << std::endl;
block_service->enable_create_file_fail = true;
std::cout << "ref_counter = " << backup_context->get_count() << std::endl;
backup_context->check_backup_on_remote();
ASSERT_TRUE(backup_context->status() == cold_backup_status::ColdBackupFailed);
block_service->enable_create_file_fail = false;
std::cout << "ref_counter = " << backup_context->get_count() << std::endl;
}
// case3 : current_chkpt_file exist
// this case will call read_current_chkpt_file, so we make read_current_chkpt_file fail to stop
backup_context->_status.store(cold_backup_status::ColdBackupChecking);
{
std::cout << "testing read current_chkpt_file fail..." << std::endl;
current_chkpt_file->enable_read_fail = true;
// so current_chkpt_file must exit
current_chkpt_file->file_exist("123", 123);
backup_context->check_backup_on_remote();
ASSERT_TRUE(backup_context->status() == cold_backup_status::ColdBackupFailed);
current_chkpt_file->enable_read_fail = false;
current_chkpt_file->clear_file_exist();
}
ASSERT_TRUE(backup_context->get_count() == 1);
ASSERT_TRUE(current_chkpt_file->get_count() == 1);
ASSERT_TRUE(backup_metadata_file->get_count() == 1);
ASSERT_TRUE(regular_file->get_count() == 1);
}
示例5: remote_chkpt_dir_exist_test
void replication_service_test_app::remote_chkpt_dir_exist_test()
{
gpid mock_gpid(1, 2);
std::string mock_app_name("mock_app");
int64_t mock_backup_id(1000);
std::string mock_backup_provider_name("mock_backup_provider_name");
request.__set_pid(mock_gpid);
request.__set_app_name(mock_app_name);
request.__set_backup_id(mock_backup_id);
policy_info mock_policy_info;
mock_policy_info.__set_backup_provider_type("mock_service");
mock_policy_info.__set_policy_name("mock_policy");
request.__set_policy(mock_policy_info);
// the case that list_dir fail has been already tested
cold_backup_context_ptr backup_context =
new cold_backup_context(nullptr, request, concurrent_uploading_file_cnt);
backup_context->start_check();
backup_context->block_service = block_service.get();
backup_context->backup_root = backup_root;
backup_context->_status.store(cold_backup_status::ColdBackupChecking);
// case1: directory is exist
{
std::cout << "testing remote checkpoint directory is exist..." << std::endl;
std::string dir_name = std::string("test_dir");
current_chkpt_file->file_exist("123", 10);
current_chkpt_file->set_context(dir_name);
std::string parent_dir = cold_backup::get_replica_backup_path(
backup_root, mock_policy_info.policy_name, mock_app_name, mock_gpid, mock_backup_id);
std::vector<ls_entry> entries;
entries.emplace_back(ls_entry{std::string(dir_name), true});
// remote_chkpt_dir_exist() function judge whether the dir-A is exist through listing
// the dir-A's parent path
block_service->dir_files.insert(
std::make_pair(::dsn::utils::filesystem::get_file_name(parent_dir), entries));
backup_context->remote_chkpt_dir_exist(dir_name);
ASSERT_TRUE(backup_context->status() == cold_backup_status::ColdBackupCompleted);
current_chkpt_file->clear_file_exist();
current_chkpt_file->clear_context();
block_service->dir_files.clear();
}
backup_context->_status.store(cold_backup_status::ColdBackupChecking);
// case2: directory is not exist
{
std::cout << "testing remote checkpoint directory is not exist..." << std::endl;
std::string dir_name = std::string("test_dir");
current_chkpt_file->file_exist("123", 10);
current_chkpt_file->set_context(dir_name);
backup_context->remote_chkpt_dir_exist(dir_name);
ASSERT_TRUE(backup_context->status() == cold_backup_status::ColdBackupChecked);
current_chkpt_file->clear_file_exist();
current_chkpt_file->clear_context();
}
ASSERT_TRUE(backup_context->get_count() == 1);
ASSERT_TRUE(current_chkpt_file->get_count() == 1);
ASSERT_TRUE(backup_metadata_file->get_count() == 1);
ASSERT_TRUE(regular_file->get_count() == 1);
}
示例6: on_upload_chkpt_dir_test
void replication_service_test_app::on_upload_chkpt_dir_test()
{
cold_backup_context_ptr backup_context =
new cold_backup_context(nullptr, request, concurrent_uploading_file_cnt);
backup_context->start_check();
backup_context->block_service = block_service.get();
backup_context->backup_root = backup_root;
backup_context->_status.store(cold_backup_status::ColdBackupUploading);
backup_context->_upload_status.store(cold_backup_context::upload_status::UploadUncomplete);
backup_context->_max_concurrent_uploading_file_cnt = 2;
// case1: empty checkpoint file has been already tested in read_backup_metadata
// so, here just ignore
// case2: checkpoint file is not empty
{
std::cout << "testing on_upload_chkpt_dir with non-empty checkpoint files..." << std::endl;
// smiulate some files, because file is not truly exist, so we must ignore testing
// prepare_upload
// TODO: find a better way to test prepare_upload
std::string test_file1 = "test_file1";
int32_t file1_size = 10;
std::string file1_md5 = "test_file1_md5";
std::string test_file2 = "test_file2";
int32_t file2_size = 10;
std::string file2_md5 = "test_file2_md5";
backup_context->checkpoint_files.emplace_back(test_file1);
backup_context->checkpoint_files.emplace_back(test_file2);
{
// should smiulate prepare_upload here
backup_context->_file_remain_cnt = 2;
file_meta f_meta;
f_meta.name = test_file1;
f_meta.md5 = file1_md5;
f_meta.size = file1_size;
backup_context->_file_status.insert(
std::make_pair(test_file1, cold_backup_context::file_status::FileUploadUncomplete));
backup_context->_file_infos.insert(
std::make_pair(test_file1, std::make_pair(file1_size, file1_md5)));
backup_context->checkpoint_file_total_size = file1_size;
backup_context->_metadata.files.emplace_back(f_meta);
f_meta.name = test_file2;
f_meta.md5 = file2_md5;
f_meta.size = file2_size;
backup_context->_file_status.insert(
std::make_pair(test_file2, cold_backup_context::file_status::FileUploadUncomplete));
backup_context->_file_infos.insert(
std::make_pair(test_file2, std::make_pair(file2_size, file2_md5)));
backup_context->checkpoint_file_total_size += file2_size;
backup_context->_metadata.files.emplace_back(f_meta);
}
backup_metadata_file->enable_write_fail = true;
regular_file->size = 10;
backup_context->on_upload_chkpt_dir();
std::cout << cold_backup_status_to_string(backup_context->status()) << std::endl;
ASSERT_TRUE(backup_context->status() == cold_backup_status::ColdBackupFailed);
regular_file->clear_file_exist();
backup_metadata_file->enable_write_fail = false;
backup_context->_metadata.files.clear();
backup_context->checkpoint_files.clear();
}
ASSERT_TRUE(backup_context->get_count() == 1);
ASSERT_TRUE(current_chkpt_file->get_count() == 1);
ASSERT_TRUE(backup_metadata_file->get_count() == 1);
ASSERT_TRUE(regular_file->get_count() == 1);
}