Open COM8 opened 5 months ago
Invoking any cpr::MultiPerform request e.g. cpr::MultiPerform::Get(); multiple times on the same object leads to a crash (SegFault) during the second invocation.
cpr::MultiPerform
cpr::MultiPerform::Get();
This leads to cpr::MultiPerform to being reusable.
Here is an example test case:
TEST(MultiperformGetTests, MultiperformSingleSessionMultiGetTest) { Url url{server->GetBaseUrl() + "/hello.html"}; std::shared_ptr<Session> session = std::make_shared<Session>(); session->SetUrl(url); MultiPerform multiperform; multiperform.AddSession(session); std::vector<Response> responses = multiperform.Get(); EXPECT_EQ(responses.size(), 1); std::string expected_text{"Hello world!"}; EXPECT_EQ(expected_text, responses.at(0).text); EXPECT_EQ(url, responses.at(0).url); EXPECT_EQ(std::string{"text/html"}, responses.at(0).header["content-type"]); EXPECT_EQ(200, responses.at(0).status_code); EXPECT_EQ(ErrorCode::OK, responses.at(0).error.code); // Invoke for the second time responses = multiperform.Get(); // Fails here EXPECT_EQ(responses.size(), 1); EXPECT_EQ(expected_text, responses.at(0).text); EXPECT_EQ(url, responses.at(0).url); EXPECT_EQ(std::string{"text/html"}, responses.at(0).header["content-type"]); EXPECT_EQ(200, responses.at(0).status_code); EXPECT_EQ(ErrorCode::OK, responses.at(0).error.code); }
No response
GitHub (branch e.g. master)
Description
Invoking any
cpr::MultiPerform
request e.g.cpr::MultiPerform::Get();
multiple times on the same object leads to a crash (SegFault) during the second invocation.This leads to
cpr::MultiPerform
to being reusable.Example/How to Reproduce
Here is an example test case:
Possible Fix
No response
Where did you get it from?
GitHub (branch e.g. master)
Additional Context/Your Environment