void checkCallback() { report(0, "checking callback..."); BufferedPort<Bottle> out; PortReaderBufferTestHelper in; out.open("/out"); in.open("/in"); in.useCallback(); Network::connect("/out","/in"); Network::sync("/out"); Network::sync("/in"); out.prepare().fromString("1 2 3"); out.write(); int rep = 0; while (in.count==0 && rep<50) { Time::delay(0.1); rep++; } checkEqual(in.count,3,"got message #1"); in.disableCallback(); out.prepare().fromString("1 2 3 4"); out.write(true); Bottle *datum = in.read(); checkTrue(datum!=NULL, "got message #2"); checkEqual(datum->size(),4,"message is ok"); in.useCallback(); in.count = 0; out.prepare().fromString("1 2 3 4 5"); out.write(true); rep = 0; while (in.count==0 && rep<50) { Time::delay(0.1); rep++; } checkEqual(in.count,5,"got message #3"); }
void checkCallbackNoOpen() { report(0, "checking callback part without open..."); { report(0, "test 1"); PortReaderBufferTestHelper in; in.useCallback(); in.disableCallback(); } { report(0, "test 2"); PortReaderBufferTestHelper in; in.useCallback(); in.disableCallback(); } { report(0, "test 3"); PortReaderBufferTestHelper in; in.useCallback(); } { report(0, "test 4"); PortReaderBufferTestHelper in; in.useCallback(); in.close(); } }