aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArne Morten Kvarving <cptspiff@gmail.com>2015-02-12 20:08:53 +0100
committerMemphiz <memphis@machzwo.de>2015-02-12 22:11:22 +0100
commitfc623918f4753b0b8f8b6e8d971039718a4929ab (patch)
tree4480cc17203b8783c8e092b9499d97a17ae3f642
parent809b1f437faf6ade51b73ca7aceb9d35461584d7 (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.cpp36
-rw-r--r--xbmc/threads/test/TestEvent.cpp25
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;