Skip to content
Snippets Groups Projects
Commit 04d6d83b authored by Carsten Patzke's avatar Carsten Patzke
Browse files

[Fabric] Strengthen the tests by allowing RecvAny to timeout (for valgrind)

parent 28afc28c
No related branches found
No related tags found
No related merge requests found
......@@ -30,7 +30,11 @@ void ServerChildThread(FabricServer* server, std::atomic<int>* serverTotalReques
FabricAddress clientAddress;
FabricMessageId messageId;
server->RecvAny(&clientAddress, &messageId, &request, sizeof(request), &err);
// In order to run the tests more stable. Otherwise a timeout could occurred with valgrind
int tries = 0;
do {
server->RecvAny(&clientAddress, &messageId, &request, sizeof(request), &err);
} while (err == IOErrorTemplates::kTimeout && tries++ < 2);
M_AssertEq(nullptr, err, "server->RecvAny");
M_AssertEq("Hello World", request.message);
M_AssertEq(messageId / kEachInstanceRuns, request.data_id); // is client index
......
......@@ -35,7 +35,11 @@ void ServerMasterThread(const std::string& hostname, uint16_t port, char* expect
FabricAddress clientAddress;
FabricMessageId messageId;
server->RecvAny(&clientAddress, &messageId, &request, sizeof(request), &err);
// In order to run the tests more stable. Otherwise a timeout could occurred with valgrind
int tries = 0;
do {
server->RecvAny(&clientAddress, &messageId, &request, sizeof(request), &err);
} while (err == IOErrorTemplates::kTimeout && tries++ < 2);
M_AssertEq(nullptr, err, "server->RecvAny");
M_AssertEq(123 + instanceRuns, messageId);
M_AssertEq("Hello World", request.message);
......
......@@ -29,7 +29,12 @@ void ServerMasterThread(const std::string& hostname, uint16_t port) {
int dummyBuffer;
FabricAddress clientAddress;
FabricMessageId messageId;
server->RecvAny(&clientAddress, &messageId, &dummyBuffer, sizeof(dummyBuffer), &err);
// In order to run the tests more stable. Otherwise a timeout could occurred with valgrind
int tries = 0;
do {
server->RecvAny(&clientAddress, &messageId, &dummyBuffer, sizeof(dummyBuffer), &err);
} while (err == IOErrorTemplates::kTimeout && tries++ < 2);
M_AssertEq(nullptr, err, "server->RecvAny");
server->Send(clientAddress, messageId, &dummyBuffer, sizeof(dummyBuffer), &err);
......
......@@ -47,7 +47,10 @@ void ServerMasterThread(const std::string& hostname, uint16_t port) {
M_AssertEq(nullptr, err, "server->Send(1)");
// Simulate correct memory details
server->RecvAny(&clientAddress, &messageId, &request, sizeof(request), &err);
int tries = 0;
do {
server->RecvAny(&clientAddress, &messageId, &request, sizeof(request), &err);
} while (err == IOErrorTemplates::kTimeout && tries++ < 2);
M_AssertEq(nullptr, err, "server->RecvAny(2)");
M_AssertEq(2, messageId);
server->RdmaWrite(clientAddress, (MemoryRegionDetails*)&request.substream, rdmaBuffer.get(), kRdmaSize, &err);
......@@ -57,7 +60,10 @@ void ServerMasterThread(const std::string& hostname, uint16_t port) {
// Simulate old (unregistered) memory details
GenericRequestHeader request2{};
server->RecvAny(&clientAddress, &messageId, &request2, sizeof(request2), &err);
tries = 0;
do {
server->RecvAny(&clientAddress, &messageId, &request2, sizeof(request2), &err);
} while (err == IOErrorTemplates::kTimeout && tries++ < 2);
M_AssertEq(nullptr, err, "server->RecvAny(3)");
M_AssertEq(3, messageId);
server->RdmaWrite(clientAddress, (MemoryRegionDetails*)&request.substream, rdmaBuffer.get(), kRdmaSize, &err);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment