mirror of
https://github.com/yhirose/cpp-httplib.git
synced 2025-05-15 01:08:27 +00:00
Fix #1959
This commit is contained in:
parent
131bc6c674
commit
e0ebc431dc
2 changed files with 75 additions and 2 deletions
35
test/test.cc
35
test/test.cc
|
@ -5268,6 +5268,41 @@ TEST(KeepAliveTest, Issue1041) {
|
|||
EXPECT_EQ(StatusCode::OK_200, result->status);
|
||||
}
|
||||
|
||||
TEST(KeepAliveTest, Issue1959) {
|
||||
Server svr;
|
||||
svr.set_keep_alive_timeout(5);
|
||||
|
||||
svr.Get("/a", [&](const Request & /*req*/, Response &res) {
|
||||
res.set_content("a", "text/plain");
|
||||
});
|
||||
|
||||
auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); });
|
||||
auto se = detail::scope_exit([&] {
|
||||
if (!svr.is_running()) return;
|
||||
svr.stop();
|
||||
listen_thread.join();
|
||||
ASSERT_FALSE(svr.is_running());
|
||||
});
|
||||
|
||||
svr.wait_until_ready();
|
||||
|
||||
Client cli("localhost", PORT);
|
||||
cli.set_keep_alive(true);
|
||||
|
||||
using namespace std::chrono;
|
||||
auto start = steady_clock::now();
|
||||
|
||||
cli.Get("/a");
|
||||
|
||||
svr.stop();
|
||||
listen_thread.join();
|
||||
|
||||
auto end = steady_clock::now();
|
||||
auto elapsed = duration_cast<milliseconds>(end - start).count();
|
||||
|
||||
EXPECT_LT(elapsed, 5000);
|
||||
}
|
||||
|
||||
#ifdef CPPHTTPLIB_OPENSSL_SUPPORT
|
||||
TEST(KeepAliveTest, SSLClientReconnection) {
|
||||
SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue