Fixed ClientStop test problem

This commit is contained in:
yhirose 2021-02-06 20:12:30 -05:00
parent b7566f6961
commit bc80d7c789

View File

@ -417,16 +417,16 @@ TEST(ChunkedEncodingTest, WithResponseHandlerAndContentReceiver) {
cli.set_connection_timeout(2); cli.set_connection_timeout(2);
std::string body; std::string body;
auto res = cli.Get( auto res =
"/httpgallery/chunked/chunkedimage.aspx?0.4153841143030137", cli.Get("/httpgallery/chunked/chunkedimage.aspx?0.4153841143030137",
[&](const Response &response) { [&](const Response &response) {
EXPECT_EQ(200, response.status); EXPECT_EQ(200, response.status);
return true; return true;
}, },
[&](const char *data, size_t data_length) { [&](const char *data, size_t data_length) {
body.append(data, data_length); body.append(data, data_length);
return true; return true;
}); });
ASSERT_TRUE(res); ASSERT_TRUE(res);
std::string out; std::string out;
@ -2315,7 +2315,8 @@ TEST_F(ServerTest, ClientStop) {
auto res = cli_.Get("/streamed-cancel", auto res = cli_.Get("/streamed-cancel",
[&](const char *, uint64_t) { return true; }); [&](const char *, uint64_t) { return true; });
ASSERT_TRUE(!res); ASSERT_TRUE(!res);
EXPECT_TRUE(res.error() == Error::Canceled || res.error() == Error::Read); EXPECT_TRUE(res.error() == Error::Canceled ||
res.error() == Error::Read || res.error() == Error::Write);
})); }));
} }
@ -2460,13 +2461,13 @@ TEST_F(ServerTest, SlowPost) {
char buffer[64 * 1024]; char buffer[64 * 1024];
memset(buffer, 0x42, sizeof(buffer)); memset(buffer, 0x42, sizeof(buffer));
auto res = cli_.Post( auto res =
"/slowpost", 64 * 1024 * 1024, cli_.Post("/slowpost", 64 * 1024 * 1024,
[&](size_t /*offset*/, size_t /*length*/, DataSink &sink) { [&](size_t /*offset*/, size_t /*length*/, DataSink &sink) {
sink.write(buffer, sizeof(buffer)); sink.write(buffer, sizeof(buffer));
return true; return true;
}, },
"text/plain"); "text/plain");
ASSERT_TRUE(res); ASSERT_TRUE(res);
EXPECT_EQ(200, res->status); EXPECT_EQ(200, res->status);
@ -2477,13 +2478,13 @@ TEST_F(ServerTest, SlowPostFail) {
memset(buffer, 0x42, sizeof(buffer)); memset(buffer, 0x42, sizeof(buffer));
cli_.set_write_timeout(0, 0); cli_.set_write_timeout(0, 0);
auto res = cli_.Post( auto res =
"/slowpost", 64 * 1024 * 1024, cli_.Post("/slowpost", 64 * 1024 * 1024,
[&](size_t /*offset*/, size_t /*length*/, DataSink &sink) { [&](size_t /*offset*/, size_t /*length*/, DataSink &sink) {
sink.write(buffer, sizeof(buffer)); sink.write(buffer, sizeof(buffer));
return true; return true;
}, },
"text/plain"); "text/plain");
ASSERT_TRUE(!res); ASSERT_TRUE(!res);
EXPECT_EQ(Error::Write, res.error()); EXPECT_EQ(Error::Write, res.error());
@ -2497,14 +2498,13 @@ TEST_F(ServerTest, Put) {
} }
TEST_F(ServerTest, PutWithContentProvider) { TEST_F(ServerTest, PutWithContentProvider) {
auto res = cli_.Put( auto res = cli_.Put("/put", 3,
"/put", 3, [](size_t /*offset*/, size_t /*length*/, DataSink &sink) {
[](size_t /*offset*/, size_t /*length*/, DataSink &sink) { EXPECT_TRUE(sink.is_writable());
EXPECT_TRUE(sink.is_writable()); sink.os << "PUT";
sink.os << "PUT"; return true;
return true; },
}, "text/plain");
"text/plain");
ASSERT_TRUE(res); ASSERT_TRUE(res);
EXPECT_EQ(200, res->status); EXPECT_EQ(200, res->status);
@ -2512,27 +2512,24 @@ TEST_F(ServerTest, PutWithContentProvider) {
} }
TEST_F(ServerTest, PostWithContentProviderAbort) { TEST_F(ServerTest, PostWithContentProviderAbort) {
auto res = cli_.Post( auto res = cli_.Post("/post", 42,
"/post", 42, [](size_t /*offset*/, size_t /*length*/,
[](size_t /*offset*/, size_t /*length*/, DataSink & /*sink*/) { DataSink & /*sink*/) { return false; },
return false; "text/plain");
},
"text/plain");
ASSERT_TRUE(!res); ASSERT_TRUE(!res);
EXPECT_EQ(Error::Canceled, res.error()); EXPECT_EQ(Error::Canceled, res.error());
} }
TEST_F(ServerTest, PutWithContentProviderWithoutLength) { TEST_F(ServerTest, PutWithContentProviderWithoutLength) {
auto res = cli_.Put( auto res = cli_.Put("/put",
"/put", [](size_t /*offset*/, DataSink &sink) {
[](size_t /*offset*/, DataSink &sink) { EXPECT_TRUE(sink.is_writable());
EXPECT_TRUE(sink.is_writable()); sink.os << "PUT";
sink.os << "PUT"; sink.done();
sink.done(); return true;
return true; },
}, "text/plain");
"text/plain");
ASSERT_TRUE(res); ASSERT_TRUE(res);
EXPECT_EQ(200, res->status); EXPECT_EQ(200, res->status);
@ -2551,14 +2548,13 @@ TEST_F(ServerTest, PostWithContentProviderWithoutLengthAbort) {
#ifdef CPPHTTPLIB_ZLIB_SUPPORT #ifdef CPPHTTPLIB_ZLIB_SUPPORT
TEST_F(ServerTest, PutWithContentProviderWithGzip) { TEST_F(ServerTest, PutWithContentProviderWithGzip) {
cli_.set_compress(true); cli_.set_compress(true);
auto res = cli_.Put( auto res = cli_.Put("/put", 3,
"/put", 3, [](size_t /*offset*/, size_t /*length*/, DataSink &sink) {
[](size_t /*offset*/, size_t /*length*/, DataSink &sink) { EXPECT_TRUE(sink.is_writable());
EXPECT_TRUE(sink.is_writable()); sink.os << "PUT";
sink.os << "PUT"; return true;
return true; },
}, "text/plain");
"text/plain");
ASSERT_TRUE(res); ASSERT_TRUE(res);
EXPECT_EQ(200, res->status); EXPECT_EQ(200, res->status);
@ -2567,12 +2563,10 @@ TEST_F(ServerTest, PutWithContentProviderWithGzip) {
TEST_F(ServerTest, PostWithContentProviderWithGzipAbort) { TEST_F(ServerTest, PostWithContentProviderWithGzipAbort) {
cli_.set_compress(true); cli_.set_compress(true);
auto res = cli_.Post( auto res = cli_.Post("/post", 42,
"/post", 42, [](size_t /*offset*/, size_t /*length*/,
[](size_t /*offset*/, size_t /*length*/, DataSink & /*sink*/) { DataSink & /*sink*/) { return false; },
return false; "text/plain");
},
"text/plain");
ASSERT_TRUE(!res); ASSERT_TRUE(!res);
EXPECT_EQ(Error::Canceled, res.error()); EXPECT_EQ(Error::Canceled, res.error());
@ -2580,15 +2574,14 @@ TEST_F(ServerTest, PostWithContentProviderWithGzipAbort) {
TEST_F(ServerTest, PutWithContentProviderWithoutLengthWithGzip) { TEST_F(ServerTest, PutWithContentProviderWithoutLengthWithGzip) {
cli_.set_compress(true); cli_.set_compress(true);
auto res = cli_.Put( auto res = cli_.Put("/put",
"/put", [](size_t /*offset*/, DataSink &sink) {
[](size_t /*offset*/, DataSink &sink) { EXPECT_TRUE(sink.is_writable());
EXPECT_TRUE(sink.is_writable()); sink.os << "PUT";
sink.os << "PUT"; sink.done();
sink.done(); return true;
return true; },
}, "text/plain");
"text/plain");
ASSERT_TRUE(res); ASSERT_TRUE(res);
EXPECT_EQ(200, res->status); EXPECT_EQ(200, res->status);
@ -2908,9 +2901,8 @@ TEST_F(ServerTest, KeepAlive) {
EXPECT_EQ("empty", res->body); EXPECT_EQ("empty", res->body);
EXPECT_EQ("close", res->get_header_value("Connection")); EXPECT_EQ("close", res->get_header_value("Connection"));
res = cli_.Post( res = cli_.Post("/empty", 0, [&](size_t, size_t, DataSink &) { return true; },
"/empty", 0, [&](size_t, size_t, DataSink &) { return true; }, "text/plain");
"text/plain");
ASSERT_TRUE(res); ASSERT_TRUE(res);
EXPECT_EQ(200, res->status); EXPECT_EQ(200, res->status);
EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); EXPECT_EQ("text/plain", res->get_header_value("Content-Type"));