Skip to content

Commit 72e7952

Browse files
committed
Fix #1481 (with content provider)
1 parent 6a848b1 commit 72e7952

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

test/test.cc

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4991,6 +4991,60 @@ TEST(KeepAliveTest, SSLClientReconnection) {
49914991
ASSERT_TRUE(result);
49924992
EXPECT_EQ(StatusCode::OK_200, result->status);
49934993
}
4994+
4995+
TEST(KeepAliveTest, SSLClientReconnectionPost) {
4996+
SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE);
4997+
ASSERT_TRUE(svr.is_valid());
4998+
svr.set_keep_alive_timeout(1);
4999+
std::string content = "reconnect";
5000+
5001+
svr.Post("/hi", [](const httplib::Request &, httplib::Response &res) {
5002+
res.set_content("Hello World!", "text/plain");
5003+
});
5004+
5005+
auto f = std::async(std::launch::async, [&svr] { svr.listen(HOST, PORT); });
5006+
std::this_thread::sleep_for(std::chrono::milliseconds(200));
5007+
5008+
SSLClient cli(HOST, PORT);
5009+
cli.enable_server_certificate_verification(false);
5010+
cli.set_keep_alive(true);
5011+
5012+
auto result = cli.Post(
5013+
"/hi", content.size(),
5014+
[&content](size_t offset, size_t length, DataSink &sink) {
5015+
sink.write(content.c_str(), content.size());
5016+
return true;
5017+
},
5018+
"text/plain");
5019+
ASSERT_TRUE(result);
5020+
EXPECT_EQ(200, result->status);
5021+
5022+
std::this_thread::sleep_for(std::chrono::seconds(2));
5023+
5024+
// Recoonect
5025+
result = cli.Post(
5026+
"/hi", content.size(),
5027+
[&content](size_t offset, size_t length, DataSink &sink) {
5028+
sink.write(content.c_str(), content.size());
5029+
return true;
5030+
},
5031+
"text/plain");
5032+
ASSERT_TRUE(result);
5033+
EXPECT_EQ(200, result->status);
5034+
5035+
result = cli.Post(
5036+
"/hi", content.size(),
5037+
[&content](size_t offset, size_t length, DataSink &sink) {
5038+
sink.write(content.c_str(), content.size());
5039+
return true;
5040+
},
5041+
"text/plain");
5042+
ASSERT_TRUE(result);
5043+
EXPECT_EQ(200, result->status);
5044+
5045+
svr.stop();
5046+
f.wait();
5047+
}
49945048
#endif
49955049

49965050
TEST(ClientProblemDetectionTest, ContentProvider) {

0 commit comments

Comments
 (0)