Commit 7d55cca0 authored by Dominik Charousset's avatar Dominik Charousset

Fix memory leaks in unit tests

parent 3fd37d26
...@@ -152,6 +152,12 @@ struct fixture : test_coordinator_fixture<> { ...@@ -152,6 +152,12 @@ struct fixture : test_coordinator_fixture<> {
CAF_FAIL("nonblocking returned an error: " << err); CAF_FAIL("nonblocking returned an error: " << err);
} }
~fixture() {
while (mpx->poll_once(false)) {
// repeat
}
}
template <class Predicate> template <class Predicate>
void run_while(Predicate predicate) { void run_while(Predicate predicate) {
if (!predicate()) if (!predicate())
...@@ -206,7 +212,6 @@ CAF_TEST(actor shells expose their mailbox to their owners) { ...@@ -206,7 +212,6 @@ CAF_TEST(actor shells expose their mailbox to their owners) {
run_while([&] { return app->lines.size() != 3; }); run_while([&] { return app->lines.size() != 3; });
CAF_CHECK_EQUAL(app->lines, svec({"line 1", "line 2", "line 3"})); CAF_CHECK_EQUAL(app->lines, svec({"line 1", "line 2", "line 3"}));
self_socket_guard.reset(); self_socket_guard.reset();
run_while([&] { return mpx->num_socket_managers() > 1; });
} }
CAF_TEST(actor shells can send requests and receive responses) { CAF_TEST(actor shells can send requests and receive responses) {
...@@ -231,7 +236,6 @@ CAF_TEST(actor shells can send requests and receive responses) { ...@@ -231,7 +236,6 @@ CAF_TEST(actor shells can send requests and receive responses) {
recv_buf.size()}; recv_buf.size()};
CAF_CHECK_EQUAL(received_response, expected_response); CAF_CHECK_EQUAL(received_response, expected_response);
self_socket_guard.reset(); self_socket_guard.reset();
run_while([&] { return mpx->num_socket_managers() > 1; });
} }
CAF_TEST_FIXTURE_SCOPE_END() CAF_TEST_FIXTURE_SCOPE_END()
...@@ -228,6 +228,9 @@ SCENARIO("calling suspend_reading temporarily halts receiving of messages") { ...@@ -228,6 +228,9 @@ SCENARIO("calling suspend_reading temporarily halts receiving of messages") {
} }
} }
writer.join(); writer.join();
while (mpx->poll_once(false)) {
// repeat
}
} }
} }
......
...@@ -210,6 +210,9 @@ SCENARIO("ssl::transport::make_client performs the client handshake") { ...@@ -210,6 +210,9 @@ SCENARIO("ssl::transport::make_client performs the client handshake") {
CHECK_EQ(value, 10); CHECK_EQ(value, 10);
} }
} }
while (mpx->poll_once(false)) {
// repeat
}
} }
} }
server.join(); server.join();
...@@ -251,6 +254,9 @@ SCENARIO("ssl::transport::make_server performs the server handshake") { ...@@ -251,6 +254,9 @@ SCENARIO("ssl::transport::make_server performs the server handshake") {
CHECK_EQ(value, 10); CHECK_EQ(value, 10);
} }
} }
while (mpx->poll_once(false)) {
// repeat
}
} }
} }
client.join(); client.join();
......
...@@ -152,6 +152,12 @@ struct fixture : test_coordinator_fixture<> { ...@@ -152,6 +152,12 @@ struct fixture : test_coordinator_fixture<> {
CAF_FAIL("nonblocking returned an error: " << err); CAF_FAIL("nonblocking returned an error: " << err);
} }
~fixture() {
while (mpx->poll_once(false)) {
// repeat
}
}
template <class Predicate> template <class Predicate>
void run_while(Predicate predicate) { void run_while(Predicate predicate) {
if (!predicate()) if (!predicate())
...@@ -206,7 +212,6 @@ CAF_TEST(actor shells expose their mailbox to their owners) { ...@@ -206,7 +212,6 @@ CAF_TEST(actor shells expose their mailbox to their owners) {
run_while([&] { return app->lines.size() != 3; }); run_while([&] { return app->lines.size() != 3; });
CAF_CHECK_EQUAL(app->lines, svec({"line 1", "line 2", "line 3"})); CAF_CHECK_EQUAL(app->lines, svec({"line 1", "line 2", "line 3"}));
self_socket_guard.reset(); self_socket_guard.reset();
run_while([&] { return mpx->num_socket_managers() > 1; });
} }
CAF_TEST(actor shells can send requests and receive responses) { CAF_TEST(actor shells can send requests and receive responses) {
...@@ -231,7 +236,6 @@ CAF_TEST(actor shells can send requests and receive responses) { ...@@ -231,7 +236,6 @@ CAF_TEST(actor shells can send requests and receive responses) {
recv_buf.size()}; recv_buf.size()};
CAF_CHECK_EQUAL(received_response, expected_response); CAF_CHECK_EQUAL(received_response, expected_response);
self_socket_guard.reset(); self_socket_guard.reset();
run_while([&] { return mpx->num_socket_managers() > 1; });
} }
CAF_TEST_FIXTURE_SCOPE_END() CAF_TEST_FIXTURE_SCOPE_END()
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment