diff options
author | Arne Morten Kvarving <cptspiff@gmail.com> | 2015-02-12 20:08:53 +0100 |
---|---|---|
committer | Memphiz <memphis@machzwo.de> | 2015-02-12 22:11:22 +0100 |
commit | fc623918f4753b0b8f8b6e8d971039718a4929ab (patch) | |
tree | 4480cc17203b8783c8e092b9499d97a17ae3f642 | |
parent | 809b1f437faf6ade51b73ca7aceb9d35461584d7 (diff) |
[tests] - move atomics tests from shared_ptr of thread array to vector of shared_ptr of thread - fixes tests broken by change to c++11 shared pointers for clang 3.5
-rw-r--r-- | xbmc/threads/test/TestAtomics.cpp | 36 | ||||
-rw-r--r-- | xbmc/threads/test/TestEvent.cpp | 25 |
2 files changed, 31 insertions, 30 deletions
diff --git a/xbmc/threads/test/TestAtomics.cpp b/xbmc/threads/test/TestAtomics.cpp index e7453d4516..79bab2cb1c 100644 --- a/xbmc/threads/test/TestAtomics.cpp +++ b/xbmc/threads/test/TestAtomics.cpp @@ -85,14 +85,14 @@ public: TEST(TestMassAtomic, Increment) { long lNumber = 0; - std::shared_ptr<thread> t; - t.reset(new thread[NUMTHREADS], std::default_delete<thread[]>()); DoIncrement di(&lNumber); - for(size_t i=0; i<NUMTHREADS; i++) - t[i] = thread(di); + + std::vector<std::shared_ptr<thread>> t(NUMTHREADS); + for (size_t i=0;i<NUMTHREADS;++i) + t[i].reset(new thread(di)); for(size_t i=0; i<NUMTHREADS; i++) - t[i].join(); + t[i]->join(); EXPECT_EQ((NUMTHREADS * TESTNUM), lNumber); } @@ -100,14 +100,14 @@ TEST(TestMassAtomic, Increment) TEST(TestMassAtomic, Decrement) { long lNumber = (NUMTHREADS * TESTNUM); - std::shared_ptr<thread> t; - t.reset(new thread[NUMTHREADS], std::default_delete<thread[]>()); DoDecrement dd(&lNumber); - for(size_t i=0; i<NUMTHREADS; i++) - t[i] = thread(dd); + + std::vector<std::shared_ptr<thread>> t(NUMTHREADS); + for (size_t i=0;i<NUMTHREADS;++i) + t[i].reset(new thread(dd)); for(size_t i=0; i<NUMTHREADS; i++) - t[i].join(); + t[i]->join(); EXPECT_EQ(0, lNumber); } @@ -116,14 +116,14 @@ TEST(TestMassAtomic, Add) { long lNumber = 0; long toAdd = 10; - std::shared_ptr<thread> t; - t.reset(new thread[NUMTHREADS], std::default_delete<thread[]>()); DoAdd da(&lNumber,toAdd); + + std::vector<std::shared_ptr<thread>> t(NUMTHREADS); for(size_t i=0; i<NUMTHREADS; i++) - t[i] = thread(da); + t[i].reset(new thread(da)); for(size_t i=0; i<NUMTHREADS; i++) - t[i].join(); + t[i]->join(); EXPECT_EQ((NUMTHREADS * TESTNUM) * toAdd, lNumber); } @@ -132,14 +132,14 @@ TEST(TestMassAtomic, Subtract) { long toSubtract = 10; long lNumber = (NUMTHREADS * TESTNUM) * toSubtract; - std::shared_ptr<thread> t; - t.reset(new thread[NUMTHREADS], std::default_delete<thread[]>()); DoSubtract ds(&lNumber,toSubtract); + + std::vector<std::shared_ptr<thread>> t(NUMTHREADS); for(size_t i=0; i<NUMTHREADS; i++) - t[i] = thread(ds); + t[i].reset(new thread(ds)); for(size_t i=0; i<NUMTHREADS; i++) - t[i].join(); + t[i]->join(); EXPECT_EQ(0, lNumber); } diff --git a/xbmc/threads/test/TestEvent.cpp b/xbmc/threads/test/TestEvent.cpp index 7c2111f628..b552af2860 100644 --- a/xbmc/threads/test/TestEvent.cpp +++ b/xbmc/threads/test/TestEvent.cpp @@ -571,12 +571,11 @@ public: } }; -template <class W> void RunMassEventTest(std::shared_ptr<W>& m, bool canWaitOnEvent) +template <class W> void RunMassEventTest(std::vector<std::shared_ptr<W>>& m, bool canWaitOnEvent) { - std::shared_ptr<thread> t; - t.reset(new thread[NUMTHREADS], std::default_delete<thread[]>()); + std::vector<std::shared_ptr<thread>> t(NUMTHREADS); for(size_t i=0; i<NUMTHREADS; i++) - t[i] = thread(m[i]); + t[i].reset(new thread(*m[i])); EXPECT_TRUE(waitForThread(g_mutex,NUMTHREADS,10000)); if (canWaitOnEvent) @@ -588,20 +587,20 @@ template <class W> void RunMassEventTest(std::shared_ptr<W>& m, bool canWaitOnEv for(size_t i=0; i<NUMTHREADS; i++) { - EXPECT_TRUE(m[i].waiting); + EXPECT_TRUE(m[i]->waiting); } g_event->Set(); for(size_t i=0; i<NUMTHREADS; i++) { - EXPECT_TRUE(t[i].timed_join(MILLIS(10000))); + EXPECT_TRUE(t[i]->timed_join(MILLIS(10000))); } for(size_t i=0; i<NUMTHREADS; i++) { - EXPECT_TRUE(!m[i].waiting); - EXPECT_TRUE(m[i].result); + EXPECT_TRUE(!m[i]->waiting); + EXPECT_TRUE(m[i]->result); } } @@ -610,8 +609,9 @@ TEST(TestMassEvent, General) { g_event = new CEvent(); - std::shared_ptr<mass_waiter> m; - m.reset(new mass_waiter[NUMTHREADS], std::default_delete<mass_waiter[]>()); + std::vector<std::shared_ptr<mass_waiter>> m(NUMTHREADS); + for(size_t i=0; i<NUMTHREADS; i++) + m[i].reset(new mass_waiter()); RunMassEventTest(m,true); delete g_event; @@ -621,8 +621,9 @@ TEST(TestMassEvent, Polling) { g_event = new CEvent(true); // polling needs to avoid the auto-reset - std::shared_ptr<poll_mass_waiter> m; - m.reset(new poll_mass_waiter[NUMTHREADS], std::default_delete<poll_mass_waiter[]>()); + std::vector<std::shared_ptr<poll_mass_waiter>> m(NUMTHREADS); + for(size_t i=0; i<NUMTHREADS; i++) + m[i].reset(new poll_mass_waiter()); RunMassEventTest(m,false); delete g_event; |