cancel_all_pending_requests function #26

This commit is contained in:
BlackMATov
2021-02-01 09:18:58 +07:00
parent d6a3f477f5
commit 1db3807b24
3 changed files with 64 additions and 0 deletions

View File

@@ -908,6 +908,53 @@ TEST_CASE("curly") {
}
}
TEST_CASE("curly/cancel_all_pending_requests") {
SUBCASE("cancel new requests") {
std::atomic_size_t call_count{0u};
auto req1 = net::request_builder("https://httpbin.org/delay/2")
.callback([&call_count](net::request request){
REQUIRE(request.status() == net::req_status::cancelled);
++call_count;
}).send();
auto req2 = net::request_builder("https://httpbin.org/delay/2")
.callback([&call_count](net::request request){
REQUIRE(request.status() == net::req_status::cancelled);
++call_count;
}).send();
net::cancel_all_pending_requests();
REQUIRE(call_count == 2u);
REQUIRE(req1.status() == net::req_status::cancelled);
REQUIRE(req2.status() == net::req_status::cancelled);
}
SUBCASE("cancel active requests") {
std::atomic_size_t call_count{0u};
auto req1 = net::request_builder("https://httpbin.org/delay/2")
.callback([&call_count](net::request request){
REQUIRE(request.status() == net::req_status::cancelled);
++call_count;
}).send();
auto req2 = net::request_builder("https://httpbin.org/delay/2")
.callback([&call_count](net::request request){
REQUIRE(request.status() == net::req_status::cancelled);
++call_count;
}).send();
net::perform();
net::cancel_all_pending_requests();
REQUIRE(call_count == 2u);
REQUIRE(req1.status() == net::req_status::cancelled);
REQUIRE(req2.status() == net::req_status::cancelled);
}
}
TEST_CASE("curly_examples") {
net::performer performer;