MCPcopy Create free account
hub / github.com/OpenDDS/OpenDDS / cancel_dispatch_common

Function cancel_dispatch_common

tests/unit-tests/dds/DCPS/DispatchService.cpp:372–410  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

370namespace {
371
372void cancel_dispatch_common(OpenDDS::DCPS::DispatchService& dispatcher)
373{
374 SimpleTestObj test_obj_1;
375 SimpleTestObj test_obj_2;
376
377 const OpenDDS::DCPS::MonotonicTimePoint now = OpenDDS::DCPS::MonotonicTimePoint::now();
378
379 dispatcher.schedule(test_obj_1, now + OpenDDS::DCPS::TimeDuration::from_double(0.09));
380 dispatcher.schedule(test_obj_1, now + OpenDDS::DCPS::TimeDuration::from_double(0.05));
381 dispatcher.schedule(test_obj_1, now + OpenDDS::DCPS::TimeDuration::from_double(0.08));
382 dispatcher.schedule(test_obj_2, now + OpenDDS::DCPS::TimeDuration::from_double(0.07));
383 dispatcher.schedule(test_obj_2, now + OpenDDS::DCPS::TimeDuration::from_double(0.06));
384 dispatcher.schedule(test_obj_2, now + OpenDDS::DCPS::TimeDuration::from_double(0.04));
385
386 EXPECT_EQ(dispatcher.cancel(test_obj_1), 3u);
387 EXPECT_EQ(dispatcher.cancel(test_obj_2), 3u);
388
389 long t1 = dispatcher.schedule(test_obj_1, now + OpenDDS::DCPS::TimeDuration::from_double(0.09));
390 long t2 = dispatcher.schedule(test_obj_1, now + OpenDDS::DCPS::TimeDuration::from_double(0.05));
391 long t3 = dispatcher.schedule(test_obj_1, now + OpenDDS::DCPS::TimeDuration::from_double(0.08));
392 /*long t4 =*/ dispatcher.schedule(test_obj_1, now + OpenDDS::DCPS::TimeDuration::from_double(0.07));
393 /*long t5 =*/ dispatcher.schedule(test_obj_1, now + OpenDDS::DCPS::TimeDuration::from_double(0.06));
394 long t6 = dispatcher.schedule(test_obj_1, now + OpenDDS::DCPS::TimeDuration::from_double(0.04));
395
396 EXPECT_EQ(dispatcher.cancel(t6), 1u);
397 EXPECT_EQ(dispatcher.cancel(t1), 1u);
398 EXPECT_EQ(dispatcher.cancel(t2), 1u);
399 void* arg = 0;
400 EXPECT_EQ(dispatcher.cancel(t3, &arg), 1u);
401 EXPECT_EQ(arg, &test_obj_1);
402
403 EXPECT_EQ(dispatcher.cancel(-1), 0u);
404
405 test_obj_1.wait(2u);
406 const OpenDDS::DCPS::MonotonicTimePoint after2 = OpenDDS::DCPS::MonotonicTimePoint::now();
407
408 EXPECT_GE(after2, now + OpenDDS::DCPS::TimeDuration::from_double(0.07));
409 EXPECT_EQ(test_obj_1.call_count(), 2u);
410}
411
412}
413

Callers 1

TESTFunction · 0.85

Calls 4

scheduleMethod · 0.45
cancelMethod · 0.45
waitMethod · 0.45
call_countMethod · 0.45

Tested by

no test coverage detected