Create generate free port class to avoid conflicting ports (#1439)

Fixes #1317
This commit is contained in:
Peter Chen
2024-06-18 06:29:05 -04:00
committed by GitHub
parent 5ba08b1d26
commit e135aa49d5
14 changed files with 313 additions and 149 deletions

View File

@@ -17,6 +17,7 @@
*/
//==============================================================================
#include "util/AssignRandomPort.hpp"
#include "util/Fixtures.hpp"
#include "util/TestHttpServer.hpp"
#include "util/requests/RequestBuilder.hpp"
@@ -31,6 +32,7 @@
#include <gtest/gtest.h>
#include <chrono>
#include <cstdint>
#include <expected>
#include <optional>
#include <string>
@@ -50,8 +52,8 @@ struct RequestBuilderTestBundle {
};
struct RequestBuilderTestBase : SyncAsioContextTest {
TestHttpServer server{ctx, "0.0.0.0", 11111};
RequestBuilder builder{"localhost", "11111"};
TestHttpServer server{ctx, "0.0.0.0"};
RequestBuilder builder{"localhost", server.port()};
};
struct RequestBuilderTest : RequestBuilderTestBase, testing::WithParamInterface<RequestBuilderTestBundle> {};
@@ -182,7 +184,7 @@ TEST_F(RequestBuilderTest, ResolveError)
TEST_F(RequestBuilderTest, ConnectionError)
{
builder = RequestBuilder{"localhost", "11112"};
builder = RequestBuilder{"localhost", std::to_string(tests::util::generateFreePort())};
builder.setTimeout(std::chrono::milliseconds{1});
runSpawn([this](asio::yield_context yield) {
auto const response = builder.getPlain(yield);