X-Git-Url: http://plrg.eecs.uci.edu/git/?p=libcds.git;a=blobdiff_plain;f=test%2Fstress%2Fmisc%2Fbarrier_driver.cpp;h=8dfc41dc8fef3502d23642845f4b8e312dc10157;hp=e7878fdc3d734d859aa784c27ee20bcc8e60f490;hb=ce907234b7e46dabdf37fcd0fb4e9f71a1541845;hpb=dab85f80678fe5a26a47f6bc2695c0771720f671 diff --git a/test/stress/misc/barrier_driver.cpp b/test/stress/misc/barrier_driver.cpp index e7878fdc..8dfc41dc 100644 --- a/test/stress/misc/barrier_driver.cpp +++ b/test/stress/misc/barrier_driver.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include using namespace std; @@ -14,7 +15,7 @@ namespace { typedef cds_others::SpinBarrier Barrier; -static size_t s_nBarrierThreadCount = 4; +static size_t s_nBarrierThreadCount = 2; static size_t s_nBarrierPassCount = 100000000; class BarrierTest : public cds_test::stress_fixture { @@ -28,14 +29,8 @@ protected: GetConfig(BarrierThreadCount); } - static void TearDownTestCase() { - if (count != s_nBarrierPassCount) { - cout << "Incorrect" << endl; - } - } - static void Thread() { - for (ullong i = 0; i < s_nBarrierPassCount; i++) { + for (size_t i = 0; i < s_nBarrierPassCount; i++) { if (barrier->wait()) { count++; } @@ -48,14 +43,16 @@ size_t BarrierTest::count; TEST_F(BarrierTest, Wait) { barrier = new Barrier(s_nBarrierThreadCount); - std::unique_ptr threads(new std::thread[s_nBarrierThreadCount]); + std::vector threads; for (size_t i = 0; i < s_nBarrierThreadCount; i++) { - threads[i] = std::thread(Thread); + threads.push_back(std::thread(Thread)); } for (size_t i = 0; i < s_nBarrierThreadCount; i++) { threads[i].join(); } + EXPECT_EQ(count, s_nBarrierPassCount); + delete barrier; } } // namespace