This is an automated email from the ASF dual-hosted git repository. cmcfarlen pushed a commit to branch 10.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git
commit 82f87af455dbecc02a663d813f668f2c3cab7935 Author: Damian Meden <[email protected]> AuthorDate: Tue Jun 4 09:34:56 2024 +0200 Unit-Tests: Make jsonrpc tests write the socket file inside the build (#11412) directory. (cherry picked from commit 253e046794fa20c2acc1e9b585469f97467129b8) --- src/mgmt/rpc/CMakeLists.txt | 2 ++ src/mgmt/rpc/server/unit_tests/test_rpcserver.cc | 26 ++++-------------------- 2 files changed, 6 insertions(+), 22 deletions(-) diff --git a/src/mgmt/rpc/CMakeLists.txt b/src/mgmt/rpc/CMakeLists.txt index 36446217b7..b059395e4d 100644 --- a/src/mgmt/rpc/CMakeLists.txt +++ b/src/mgmt/rpc/CMakeLists.txt @@ -56,6 +56,8 @@ target_link_libraries( ) if(BUILD_TESTING) + file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests/var) + file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests/config) add_executable(test_jsonrpc jsonrpc/unit_tests/unit_test_main.cc jsonrpc/unit_tests/test_basic_protocol.cc) target_link_libraries( test_jsonrpc ts::tsutil catch2::catch2 ts::rpcpublichandlers ts::jsonrpc_protocol libswoc::libswoc diff --git a/src/mgmt/rpc/server/unit_tests/test_rpcserver.cc b/src/mgmt/rpc/server/unit_tests/test_rpcserver.cc index ac294c7fbd..42aad4d8e2 100644 --- a/src/mgmt/rpc/server/unit_tests/test_rpcserver.cc +++ b/src/mgmt/rpc/server/unit_tests/test_rpcserver.cc @@ -64,8 +64,8 @@ add_method_handler(const std::string &name, Func &&call) return rpc::JsonRPCManager::instance().add_method_handler(name, std::forward<Func>(call), nullptr, {}); } } // namespace rpc -static const std::string sockPath{"/tmp/jsonrpc20_test.sock"}; -static const std::string lockPath{"/tmp/jsonrpc20_test.lock"}; +static const std::string sockPath{"tests/var/jsonrpc20_test.sock"}; +static const std::string lockPath{"tests/var/jsonrpc20_test.lock"}; static constexpr int default_backlog{5}; static constexpr int default_maxRetriesOnTransientErrors{64}; static constexpr auto logTag{"rpc.test.client"}; @@ -143,20 +143,6 @@ DEFINE_JSONRPC_PROTO_FUNCTION(some_foo) // id, params } namespace { -/* Create and return a path to a temporary sandbox directory. */ -fs::path -getTemporaryDir() -{ - std::error_code ec; - fs::path tmpDir = fs::canonical(fs::temp_directory_path(), ec); - tmpDir /= "sandbox_XXXXXX"; - - char dirNameTemplate[tmpDir.string().length() + 1]; - snprintf(dirNameTemplate, sizeof(dirNameTemplate), "%s", tmpDir.c_str()); - - return fs::path(mkdtemp(dirNameTemplate)); -} - // Handy class to avoid manually disconnecting the socket. // TODO: should it also connect? struct ScopedLocalSocket : shared::rpc::IPCSocketClient { @@ -505,7 +491,7 @@ struct LocalSocketTest : public trp::IPCSocketServer { }; } // namespace -TEST_CASE("Test configuration parsing. UDS values", "[string]") +TEST_CASE("Test configuration parsing from a YAML node. UDS values", "[string]") { rpc::config::RPCConfig serverConfig; @@ -527,8 +513,7 @@ TEST_CASE("Test configuration parsing. UDS values", "[string]") TEST_CASE("Test configuration parsing from a file. UDS Server", "[file]") { - fs::path sandboxDir = getTemporaryDir(); - fs::path configPath = sandboxDir / "jsonrpc.yaml"; + fs::path configPath = fs::path("tests/config") / "jsonrpc.yaml"; // define here to later compare. std::string sockPathName{configPath.string() + "jsonrpc20_test2.sock"}; @@ -555,7 +540,4 @@ TEST_CASE("Test configuration parsing from a file. UDS Server", "[file]") REQUIRE(socket->get_conf().maxRetriesOnTransientErrors == 64); REQUIRE(socket->get_conf().sockPathName == sockPathName); REQUIRE(socket->get_conf().lockPathName == lockPathName); - - std::error_code ec; - REQUIRE(fs::remove_all(sandboxDir, ec) > 0); }
