winfsp unit tests and fixes
This commit is contained in:
parent
ec2b8e1854
commit
d6aace8c51
@ -49,6 +49,7 @@ public:
|
|||||||
static std::unique_ptr<app_config> config;
|
static std::unique_ptr<app_config> config;
|
||||||
static std::filesystem::path current_directory;
|
static std::filesystem::path current_directory;
|
||||||
static std::unique_ptr<winfsp_drive> drive;
|
static std::unique_ptr<winfsp_drive> drive;
|
||||||
|
static std::vector<std::string> drive_args;
|
||||||
static std::string mount_location;
|
static std::string mount_location;
|
||||||
static std::unique_ptr<i_provider> provider;
|
static std::unique_ptr<i_provider> provider;
|
||||||
static std::string test_directory;
|
static std::string test_directory;
|
||||||
@ -70,8 +71,6 @@ protected:
|
|||||||
|
|
||||||
config = std::make_unique<app_config>(provider_t::type, cfg_directory);
|
config = std::make_unique<app_config>(provider_t::type, cfg_directory);
|
||||||
|
|
||||||
std::vector<std::string> drive_args{};
|
|
||||||
|
|
||||||
switch (provider_t::type) {
|
switch (provider_t::type) {
|
||||||
case provider_type::s3: {
|
case provider_type::s3: {
|
||||||
{
|
{
|
||||||
@ -99,11 +98,17 @@ protected:
|
|||||||
utils::path::combine(test::get_test_config_dir(), {"sia"}),
|
utils::path::combine(test::get_test_config_dir(), {"sia"}),
|
||||||
};
|
};
|
||||||
config->set_enable_drive_events(true);
|
config->set_enable_drive_events(true);
|
||||||
config->set_event_level(event_level::debug);
|
config->set_event_level(event_level::trace);
|
||||||
config->set_host_config(src_cfg.get_host_config());
|
config->set_host_config(src_cfg.get_host_config());
|
||||||
|
config->set_sia_config(src_cfg.get_sia_config());
|
||||||
}
|
}
|
||||||
|
|
||||||
comm = std::make_unique<curl_comm>(config->get_host_config());
|
comm = std::make_unique<curl_comm>(config->get_host_config());
|
||||||
|
|
||||||
|
drive_args = std::vector<std::string>({
|
||||||
|
"-na",
|
||||||
|
"sia",
|
||||||
|
});
|
||||||
} break;
|
} break;
|
||||||
// case 0U: {
|
// case 0U: {
|
||||||
// config =
|
// config =
|
||||||
@ -130,6 +135,7 @@ protected:
|
|||||||
|
|
||||||
provider = std::make_unique<provider_t>(*config, *comm);
|
provider = std::make_unique<provider_t>(*config, *comm);
|
||||||
drive_args.push_back(mount_location);
|
drive_args.push_back(mount_location);
|
||||||
|
execute_mount();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void TearDownTestCase() {
|
static void TearDownTestCase() {
|
||||||
@ -192,7 +198,7 @@ public:
|
|||||||
EXPECT_FALSE(utils::file::file(file_path).exists());
|
EXPECT_FALSE(utils::file::file(file_path).exists());
|
||||||
}
|
}
|
||||||
|
|
||||||
static void execute_mount(auto &&drive_args) {
|
static void execute_mount() {
|
||||||
auto mount_cmd = ".\\repertory.exe -dd \"" + config->get_data_directory() +
|
auto mount_cmd = ".\\repertory.exe -dd \"" + config->get_data_directory() +
|
||||||
"\"" + " " + utils::string::join(drive_args, ' ');
|
"\"" + " " + utils::string::join(drive_args, ' ');
|
||||||
std::cout << "mount command: " << mount_cmd << std::endl;
|
std::cout << "mount command: " << mount_cmd << std::endl;
|
||||||
@ -205,10 +211,11 @@ public:
|
|||||||
auto unmounted{false};
|
auto unmounted{false};
|
||||||
|
|
||||||
auto unmount_cmd = ".\\repertory.exe -dd \"" +
|
auto unmount_cmd = ".\\repertory.exe -dd \"" +
|
||||||
config->get_data_directory() + "\" -unmount";
|
config->get_data_directory() + "\"" + " " +
|
||||||
|
utils::string::join(drive_args, ' ') + " -unmount";
|
||||||
for (int i = 0; not unmounted && (i < 50); i++) {
|
for (int i = 0; not unmounted && (i < 50); i++) {
|
||||||
std::cout << "unmount command: " << unmount_cmd << std::endl;
|
std::cout << "unmount command: " << unmount_cmd << std::endl;
|
||||||
ASSERT_EQ(0, system(unmount_cmd.c_str()));
|
system(unmount_cmd.c_str());
|
||||||
unmounted = not utils::file::directory{mount_location}.exists();
|
unmounted = not utils::file::directory{mount_location}.exists();
|
||||||
if (not unmounted) {
|
if (not unmounted) {
|
||||||
std::this_thread::sleep_for(5s);
|
std::this_thread::sleep_for(5s);
|
||||||
@ -222,6 +229,9 @@ public:
|
|||||||
template <typename provider_t>
|
template <typename provider_t>
|
||||||
std::string winfsp_test<provider_t>::cfg_directory;
|
std::string winfsp_test<provider_t>::cfg_directory;
|
||||||
|
|
||||||
|
template <typename provider_t>
|
||||||
|
std::unique_ptr<curl_comm> winfsp_test<provider_t>::comm;
|
||||||
|
|
||||||
template <typename provider_t>
|
template <typename provider_t>
|
||||||
std::unique_ptr<app_config> winfsp_test<provider_t>::config;
|
std::unique_ptr<app_config> winfsp_test<provider_t>::config;
|
||||||
|
|
||||||
@ -229,7 +239,10 @@ template <typename provider_t>
|
|||||||
std::filesystem::path winfsp_test<provider_t>::current_directory;
|
std::filesystem::path winfsp_test<provider_t>::current_directory;
|
||||||
|
|
||||||
template <typename provider_t>
|
template <typename provider_t>
|
||||||
std::unique_ptr<curl_comm> winfsp_test<provider_t>::comm;
|
std::unique_ptr<winfsp_drive> winfsp_test<provider_t>::drive;
|
||||||
|
|
||||||
|
template <typename provider_t>
|
||||||
|
std::vector<std::string> winfsp_test<provider_t>::drive_args;
|
||||||
|
|
||||||
template <typename provider_t>
|
template <typename provider_t>
|
||||||
std::string winfsp_test<provider_t>::mount_location;
|
std::string winfsp_test<provider_t>::mount_location;
|
||||||
@ -240,9 +253,6 @@ std::unique_ptr<i_provider> winfsp_test<provider_t>::provider;
|
|||||||
template <typename provider_t>
|
template <typename provider_t>
|
||||||
std::string winfsp_test<provider_t>::test_directory;
|
std::string winfsp_test<provider_t>::test_directory;
|
||||||
|
|
||||||
template <typename provider_t>
|
|
||||||
std::unique_ptr<winfsp_drive> winfsp_test<provider_t>::drive;
|
|
||||||
|
|
||||||
using winfsp_provider_types = ::testing::Types<s3_provider>;
|
using winfsp_provider_types = ::testing::Types<s3_provider>;
|
||||||
// using winfsp_provider_types = ::testing::Types<s3_provider, sia_provider>;
|
// using winfsp_provider_types = ::testing::Types<s3_provider, sia_provider>;
|
||||||
} // namespace repertory
|
} // namespace repertory
|
||||||
|
Loading…
x
Reference in New Issue
Block a user