From dd3fef0ae35e5f8339a3e4fe0ecf6302f18efed6 Mon Sep 17 00:00:00 2001 From: Arne H Juul Date: Mon, 14 Nov 2016 11:00:27 +0100 Subject: wait for slobrok server to start first * since the SlobrokServer is started asynchronously in a different thread it may not be ready immediately. Add a loop retrying the initial connect to stabilize unit test. --- slobrok/src/tests/standalone/standalone.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'slobrok') diff --git a/slobrok/src/tests/standalone/standalone.cpp b/slobrok/src/tests/standalone/standalone.cpp index c17875ee571..c4ca8a0012d 100644 --- a/slobrok/src/tests/standalone/standalone.cpp +++ b/slobrok/src/tests/standalone/standalone.cpp @@ -118,7 +118,6 @@ public: TEST("standalone") { slobrok::SlobrokServer slobrokServer(18541); Stopper ssCleaner(slobrokServer); - FastOS_Thread::Sleep(300); FRT_Supervisor orb; orb.Start(); @@ -130,10 +129,18 @@ TEST("standalone") { FRT_RPCRequest *req = NULL; SubReferer reqCleaner(req); - // test ping against slobrok - req = orb.AllocRPCRequest(req); - req->SetMethodName("frt.rpc.ping"); - sb->InvokeSync(req, 5.0); + for (int retry=0; retry < 5*61; retry++) { + // test ping against slobrok + req = orb.AllocRPCRequest(req); + req->SetMethodName("frt.rpc.ping"); + sb->InvokeSync(req, 5.0); + if (checkOk(req)) + break; + fprintf(stderr, "ping failed [retry %d]\n", retry); + FastOS_Thread::Sleep(200); + sb->SubRef(); + sb = orb.GetTarget(18541); + } ASSERT_TRUE(checkOk(req)); // lookup '*' on empty slobrok -- cgit v1.2.3