diff options
Diffstat (limited to 'test/util/thread_local.test.cpp')
-rw-r--r-- | test/util/thread_local.test.cpp | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/test/util/thread_local.test.cpp b/test/util/thread_local.test.cpp index 0590e8b4dc..12a19ab59b 100644 --- a/test/util/thread_local.test.cpp +++ b/test/util/thread_local.test.cpp @@ -71,38 +71,30 @@ TEST(ThreadLocalStorage, NotSetReturnsNull) { namespace { -struct DtorCounter { - ~DtorCounter() { ++(*value); } - unsigned *value; -}; - class TestThreadReclaim { public: - TestThreadReclaim(mbgl::ActorRef<TestThreadReclaim>, DtorCounter* counter_) { - counter.set(counter_); + TestThreadReclaim(mbgl::ActorRef<TestThreadReclaim>, int* data_) { + data.set(data_); } private: - static ThreadLocal<DtorCounter> counter; + ThreadLocal<int> data; }; -ThreadLocal<DtorCounter> TestThreadReclaim::counter; - } // namespace TEST(ThreadLocalStorage, AutoReclaim) { RunLoop loop; - unsigned counter = 0; - - auto dtorCounter1 = new DtorCounter{ &counter }; - auto dtorCounter2 = new DtorCounter{ &counter }; + auto data1 = new int; + auto data2 = new int; - auto thread1 = std::make_unique<Thread<TestThreadReclaim>>("Test", dtorCounter1); - auto thread2 = std::make_unique<Thread<TestThreadReclaim>>("Test", dtorCounter2); + auto thread1 = std::make_unique<Thread<TestThreadReclaim>>("Test", data1); + auto thread2 = std::make_unique<Thread<TestThreadReclaim>>("Test", data2); thread1.reset(); thread2.reset(); - EXPECT_EQ(counter, 2u); + // Should not leak, valgrind will + // let us know. } |