From dcafb104eaefa0d78916b86357a76698c8874520 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Wed, 2 Apr 2025 14:18:35 -0500 Subject: [PATCH] [Unit Test] Complete WinFSP unit tests #21 initial support for winfsp to linux remote testing initial support for linx to winfsp remote testing --- .../include/fixtures/fuse_fixture.hpp | 13 +---------- .../include/fixtures/winfsp_fixture.hpp | 22 ++++++++++++++++--- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/repertory/repertory_test/include/fixtures/fuse_fixture.hpp b/repertory/repertory_test/include/fixtures/fuse_fixture.hpp index 55e65640..cc7b9345 100644 --- a/repertory/repertory_test/include/fixtures/fuse_fixture.hpp +++ b/repertory/repertory_test/include/fixtures/fuse_fixture.hpp @@ -75,12 +75,6 @@ struct remote_sia final { static constexpr const std::uint16_t port{0U}; }; -struct remote_winfsp_to_linux final { - static constexpr const provider_type type{provider_type::remote}; - static constexpr const provider_type type2{provider_type::unknown}; - static constexpr const std::uint16_t port{30001U}; -}; - struct remote_linux_to_winfsp final { static constexpr const provider_type type{provider_type::remote}; static constexpr const provider_type type2{provider_type::unknown}; @@ -431,12 +425,7 @@ std::string fuse_test::mount_location; template std::string fuse_test::mount_location2; -// using fuse_provider_types = ::testing::Types; -#if defined(_WIN32) -using fuse_provider_types = - ::testing::Types; -#elif defined(__linux__) +#if defined(__linux__) using fuse_provider_types = ::testing::Types; // using fuse_provider_types = diff --git a/repertory/repertory_test/include/fixtures/winfsp_fixture.hpp b/repertory/repertory_test/include/fixtures/winfsp_fixture.hpp index 70ab4048..962265bc 100644 --- a/repertory/repertory_test/include/fixtures/winfsp_fixture.hpp +++ b/repertory/repertory_test/include/fixtures/winfsp_fixture.hpp @@ -45,21 +45,31 @@ namespace repertory { struct local_s3 final { static constexpr const provider_type type{provider_type::s3}; static constexpr const provider_type type2{provider_type::s3}; + static constexpr const std::uint16_t port{0U}; }; struct local_sia final { static constexpr const provider_type type{provider_type::sia}; static constexpr const provider_type type2{provider_type::sia}; + static constexpr const std::uint16_t port{0U}; }; struct remote_s3 final { static constexpr const provider_type type{provider_type::remote}; static constexpr const provider_type type2{provider_type::s3}; + static constexpr const std::uint16_t port{0U}; }; struct remote_sia final { static constexpr const provider_type type{provider_type::remote}; static constexpr const provider_type type2{provider_type::sia}; + static constexpr const std::uint16_t port{0U}; +}; + +struct remote_winfsp_to_linux final { + static constexpr const provider_type type{provider_type::remote}; + static constexpr const provider_type type2{provider_type::unknown}; + static constexpr const std::uint16_t port{30001U}; }; template class winfsp_test : public ::testing::Test { @@ -160,13 +170,15 @@ protected: execute_mount(drive_args, mount_location); }; - const auto mount_remote = [&]() { + const auto mount_remote = [&](std::uint16_t port = 30000U) { { auto test_directory = utils::path::combine( test::get_test_output_dir(), { "winfsp_test", - app_config::get_provider_name(provider_type::remote), + app_config::get_provider_name(provider_t::type) + '_' + + app_config::get_provider_name(provider_t::type2) + '_' + + std::to_string(port), }); mount_location2 = mount_location; @@ -184,7 +196,7 @@ protected: "-dd", config->get_data_directory(), "-rm", - "localhost:30000", + fmt::format("localhost:{}", port), mount_location, }); } @@ -211,6 +223,10 @@ protected: mount_sia(); } break; + case provider_type::unknown: + mount_remote(provider_t::port); + return; + default: throw std::runtime_error("remote provider type is not implemented"); return;