|
|
|
@ -323,62 +323,4 @@ BOOST_AUTO_TEST_CASE(util_seed_insecure_rand)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int nCounter = 0;
|
|
|
|
|
|
|
|
|
|
static void Count()
|
|
|
|
|
{
|
|
|
|
|
++nCounter;
|
|
|
|
|
MilliSleep(10);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void CountWithArg(int arg)
|
|
|
|
|
{
|
|
|
|
|
nCounter += arg;
|
|
|
|
|
MilliSleep(10);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(util_loop_forever1)
|
|
|
|
|
{
|
|
|
|
|
boost::thread_group threadGroup;
|
|
|
|
|
|
|
|
|
|
threadGroup.create_thread(boost::bind(&LoopForever<void (*)()>, "count", &Count, 1));
|
|
|
|
|
MilliSleep(1);
|
|
|
|
|
threadGroup.interrupt_all();
|
|
|
|
|
BOOST_CHECK_EQUAL(nCounter, 1);
|
|
|
|
|
nCounter = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(util_loop_forever2)
|
|
|
|
|
{
|
|
|
|
|
boost::thread_group threadGroup;
|
|
|
|
|
|
|
|
|
|
boost::function<void()> f = boost::bind(&CountWithArg, 11);
|
|
|
|
|
threadGroup.create_thread(boost::bind(&LoopForever<boost::function<void()> >, "count11", f, 11));
|
|
|
|
|
MilliSleep(1);
|
|
|
|
|
threadGroup.interrupt_all();
|
|
|
|
|
BOOST_CHECK_EQUAL(nCounter, 11);
|
|
|
|
|
nCounter = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(util_threadtrace1)
|
|
|
|
|
{
|
|
|
|
|
boost::thread_group threadGroup;
|
|
|
|
|
|
|
|
|
|
threadGroup.create_thread(boost::bind(&TraceThread<void (*)()>, "count11", &Count));
|
|
|
|
|
threadGroup.join_all();
|
|
|
|
|
BOOST_CHECK_EQUAL(nCounter, 1);
|
|
|
|
|
nCounter = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(util_threadtrace2)
|
|
|
|
|
{
|
|
|
|
|
boost::thread_group threadGroup;
|
|
|
|
|
|
|
|
|
|
boost::function<void()> f = boost::bind(&CountWithArg, 11);
|
|
|
|
|
threadGroup.create_thread(boost::bind(&TraceThread<boost::function<void()> >, "count11", f));
|
|
|
|
|
threadGroup.join_all();
|
|
|
|
|
BOOST_CHECK_EQUAL(nCounter, 11);
|
|
|
|
|
nCounter = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|
|
|
|
|