- Timestamp:
- Mar 14, 2014, 8:26:33 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tests/SystemQueue-tests.cc
r12764 r12765 102 102 103 103 checkmark = true; 104 } 105 106 void Leave() 107 { 108 // let's do something before leaving.. 109 this->LongRunner(); 110 checkmark = false; 111 112 cout << "### Leaving SysQ ### "<< endl; 113 SystemQueue::instance().leave(); 104 114 } 105 115 … … 223 233 224 234 /** 235 * leaves the SystemQueue from inside a scheduled event (in contrast to cancel) 236 * 237 * NOTE: due to the SystemQueue singleton design, explicit cleanup is necessary! 238 * 239 * [ NOTE: the old System Queue does not support this. ] 240 */ 241 TEST_F(SystemQueueTest, LeaveFromInsideEvent) 242 { 243 SystemQueue& sysq = SystemQueue::instance(); 244 245 // start 246 sysq.run(); 247 248 // scheduleCall 249 sysq.scheduleCall( 250 boost::bind(&SystemQueueTest::Leave, this) 251 ); 252 253 // schedule another which must NOT be performed 254 sysq.scheduleCall( 255 boost::bind(&SystemQueueTest::Check, this) 256 ); 257 258 // sleep until the SystemQueue thread has finished 259 sysq.join(); 260 261 EXPECT_FALSE( sysq.isRunning() ); 262 263 // ensure Check() was not perfomed 264 EXPECT_FALSE( sysq.isEmpty() ); 265 EXPECT_FALSE( checkmark ); 266 267 // CLEANUP 268 sysq.cancel(); 269 270 EXPECT_FALSE( sysq.isRunning() ); 271 EXPECT_TRUE( sysq.isEmpty() ); 272 } 273 274 275 /** 225 276 * schedule a call and test whether it is actually performed by the SystemQueue 226 277 */
Note:
See TracChangeset
for help on using the changeset viewer.