mirror of
https://github.com/yhirose/cpp-httplib
synced 2024-11-21 06:26:02 -07:00
Unit test for #52
This commit is contained in:
parent
3c711089e5
commit
9dc4e23082
2 changed files with 20 additions and 0 deletions
|
@ -205,6 +205,8 @@ public:
|
|||
bool is_running() const;
|
||||
void stop();
|
||||
|
||||
bool is_handling_requests() const;
|
||||
|
||||
protected:
|
||||
bool process_request(Stream& strm, bool last_connection);
|
||||
|
||||
|
@ -1482,6 +1484,11 @@ inline void Server::stop()
|
|||
svr_sock_ = -1;
|
||||
}
|
||||
|
||||
inline bool Server::is_handling_requests() const
|
||||
{
|
||||
return running_threads_ > 0;
|
||||
}
|
||||
|
||||
inline bool Server::parse_request_line(const char* s, Request& req)
|
||||
{
|
||||
static std::regex re("(GET|HEAD|POST) ([^?]+)(?:\\?(.+?))? (HTTP/1\\.[01])\r\n");
|
||||
|
|
13
test/test.cc
13
test/test.cc
|
@ -262,6 +262,10 @@ protected:
|
|||
svr_.get("/hi", [&](const Request& /*req*/, Response& res) {
|
||||
res.set_content("Hello World!", "text/plain");
|
||||
})
|
||||
.get("/slow", [&](const Request& /*req*/, Response& res) {
|
||||
msleep(3000);
|
||||
res.set_content("slow", "text/plain");
|
||||
})
|
||||
.get("/remote_addr", [&](const Request& req, Response& res) {
|
||||
auto remote_addr = req.headers.find("REMOTE_ADDR")->second;
|
||||
res.set_content(remote_addr.c_str(), "text/plain");
|
||||
|
@ -358,6 +362,7 @@ protected:
|
|||
virtual void TearDown() {
|
||||
svr_.stop();
|
||||
t_.join();
|
||||
EXPECT_EQ(false, svr_.is_handling_requests());
|
||||
}
|
||||
|
||||
map<string, string> persons_;
|
||||
|
@ -664,6 +669,14 @@ TEST_F(ServerTest, GetMethodRemoteAddr)
|
|||
EXPECT_TRUE(res->body == "::1" || res->body == "127.0.0.1");
|
||||
}
|
||||
|
||||
TEST_F(ServerTest, SlowRequest)
|
||||
{
|
||||
std::thread([=]() { auto res = cli_.get("/slow"); }).detach();
|
||||
std::thread([=]() { auto res = cli_.get("/slow"); }).detach();
|
||||
std::thread([=]() { auto res = cli_.get("/slow"); }).detach();
|
||||
msleep(1000);
|
||||
}
|
||||
|
||||
#ifdef CPPHTTPLIB_ZLIB_SUPPORT
|
||||
TEST_F(ServerTest, Gzip)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue