From 3eecbb0c8a6e9bd906b4d313c3d690a2c4365ca4 Mon Sep 17 00:00:00 2001 From: zousar <2936246+zousar@users.noreply.github.com> Date: Tue, 6 Feb 2024 10:02:45 -0500 Subject: Add testcase and fix for ASIO ipv4 localhost support (#649) - Bugfix: Implement two listening sockets in ASIO (ipv4+ipv6) when either we start with `--http-forceloopback` or we resort to that mode because of a failure to bind to the "any" address --- src/zenserver-test/zenserver-test.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/zenserver-test/zenserver-test.cpp') diff --git a/src/zenserver-test/zenserver-test.cpp b/src/zenserver-test/zenserver-test.cpp index 5dfbc6327..9074485b6 100644 --- a/src/zenserver-test/zenserver-test.cpp +++ b/src/zenserver-test/zenserver-test.cpp @@ -198,6 +198,33 @@ TEST_CASE("default.single") zen::NiceRate(RequestCount, (uint32_t)Elapsed, "req")); } +TEST_CASE("default.loopback") +{ + std::filesystem::path TestDir = TestEnv.CreateNewTestDir(); + + ZenServerInstance Instance(TestEnv); + Instance.SetTestDir(TestDir); + const uint16_t PortNumber = Instance.SpawnServerAndWaitUntilReady("--http-forceloopback"); + + ZEN_INFO("Running loopback server test..."); + + SUBCASE("ipv4 endpoint connectivity") + { + cpr::Session cli; + cli.SetUrl(cpr::Url{fmt::format("http://127.0.0.1:{}/test/hello", PortNumber)}); + auto res = cli.Get(); + CHECK(!res.error); + } + + SUBCASE("ipv6 endpoint connectivity") + { + cpr::Session cli; + cli.SetUrl(cpr::Url{fmt::format("http://[::1]:{}/test/hello", PortNumber)}); + auto res = cli.Get(); + CHECK(!res.error); + } +} + TEST_CASE("multi.basic") { ZenServerInstance Instance1(TestEnv); -- cgit v1.2.3