Skip to content
Snippets Groups Projects
Commit 7def4045 authored by Nicolas Pope's avatar Nicolas Pope
Browse files

Attempt to improve net test reliability

parent 4436547f
Branches
Tags
No related merge requests found
Pipeline #28097 failed
...@@ -12,6 +12,15 @@ using std::chrono::milliseconds; ...@@ -12,6 +12,15 @@ using std::chrono::milliseconds;
// --- Support ----------------------------------------------------------------- // --- Support -----------------------------------------------------------------
static bool try_for(int count, const std::function<bool()> &f) {
int i=count;
while (i-- > 0) {
if (f()) return true;
sleep_for(milliseconds(10));
}
return false;
}
// --- Tests ------------------------------------------------------------------- // --- Tests -------------------------------------------------------------------
TEST_CASE("Universe::connect()", "[net]") { TEST_CASE("Universe::connect()", "[net]") {
...@@ -44,7 +53,7 @@ TEST_CASE("Universe::connect()", "[net]") { ...@@ -44,7 +53,7 @@ TEST_CASE("Universe::connect()", "[net]") {
auto p = b.connect("http://127.0.0.1:7077"); auto p = b.connect("http://127.0.0.1:7077");
REQUIRE( !p->isValid() ); REQUIRE( !p->isValid() );
sleep_for(milliseconds(100)); sleep_for(milliseconds(50));
REQUIRE( a.numberOfPeers() == 0 ); REQUIRE( a.numberOfPeers() == 0 );
REQUIRE( b.numberOfPeers() == 0 ); REQUIRE( b.numberOfPeers() == 0 );
...@@ -91,8 +100,8 @@ TEST_CASE("Universe::onConnect()", "[net]") { ...@@ -91,8 +100,8 @@ TEST_CASE("Universe::onConnect()", "[net]") {
}); });
b.connect("tcp://localhost:7077")->waitConnection(); b.connect("tcp://localhost:7077")->waitConnection();
sleep_for(milliseconds(100));
REQUIRE( done ); REQUIRE( try_for(20, [&done]{ return done; }) );
} }
SECTION("single valid init connection") { SECTION("single valid init connection") {
...@@ -123,10 +132,10 @@ TEST_CASE("Universe::onDisconnect()", "[net]") { ...@@ -123,10 +132,10 @@ TEST_CASE("Universe::onDisconnect()", "[net]") {
Peer *p = b.connect("tcp://localhost:7077"); Peer *p = b.connect("tcp://localhost:7077");
p->waitConnection(); p->waitConnection();
sleep_for(milliseconds(100)); sleep_for(milliseconds(20));
p->close(); p->close();
sleep_for(milliseconds(100));
REQUIRE( done ); REQUIRE( try_for(20, [&done]{ return done; }) );
} }
SECTION("single valid close") { SECTION("single valid close") {
...@@ -138,10 +147,10 @@ TEST_CASE("Universe::onDisconnect()", "[net]") { ...@@ -138,10 +147,10 @@ TEST_CASE("Universe::onDisconnect()", "[net]") {
Peer *p = b.connect("tcp://localhost:7077"); Peer *p = b.connect("tcp://localhost:7077");
p->waitConnection(); p->waitConnection();
sleep_for(milliseconds(100)); sleep_for(milliseconds(20));
p->close(); p->close();
sleep_for(milliseconds(100));
REQUIRE( done ); REQUIRE( try_for(20, [&done]{ return done; }) );
} }
} }
...@@ -173,9 +182,7 @@ TEST_CASE("Universe::broadcast()", "[net]") { ...@@ -173,9 +182,7 @@ TEST_CASE("Universe::broadcast()", "[net]") {
b.broadcast("hello"); b.broadcast("hello");
while (!done) sleep_for(milliseconds(5)); REQUIRE( try_for(20, [&done]{ return done; }) );
REQUIRE( done );
} }
SECTION("one argument to one peer") { SECTION("one argument to one peer") {
...@@ -188,9 +195,7 @@ TEST_CASE("Universe::broadcast()", "[net]") { ...@@ -188,9 +195,7 @@ TEST_CASE("Universe::broadcast()", "[net]") {
b.broadcast("hello", 676); b.broadcast("hello", 676);
while (done == 0) sleep_for(milliseconds(5)); REQUIRE( try_for(20, [&done]{ return done == 676; }) );
REQUIRE( done == 676 );
} }
SECTION("one argument to two peers") { SECTION("one argument to two peers") {
...@@ -214,10 +219,7 @@ TEST_CASE("Universe::broadcast()", "[net]") { ...@@ -214,10 +219,7 @@ TEST_CASE("Universe::broadcast()", "[net]") {
a.broadcast("hello", 676); a.broadcast("hello", 676);
sleep_for(milliseconds(100)); REQUIRE( try_for(20, [&done1, &done2]{ return done1 == 676 && done2 == 676; }) );
REQUIRE( done1 == 676 );
REQUIRE( done2 == 676 );
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment