diff options
Diffstat (limited to 'src/profiling/test/ProfilingGuidTest.cpp')
-rw-r--r-- | src/profiling/test/ProfilingGuidTest.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/profiling/test/ProfilingGuidTest.cpp b/src/profiling/test/ProfilingGuidTest.cpp index 5782d21cf8..b8f6b88479 100644 --- a/src/profiling/test/ProfilingGuidTest.cpp +++ b/src/profiling/test/ProfilingGuidTest.cpp @@ -12,6 +12,7 @@ #include <boost/test/unit_test.hpp> #include <boost/format.hpp> +#include <thread> using namespace armnn::profiling; @@ -124,4 +125,28 @@ BOOST_AUTO_TEST_CASE(DynamicGuidGeneratorTest) } } +BOOST_AUTO_TEST_CASE (ProfilingGuidThreadTest) +{ + ProfilingGuidGenerator profilingGuidGenerator; + + auto guidGenerator = [&profilingGuidGenerator]() + { + for (int i = 0; i < 1000; ++i) + { + profilingGuidGenerator.NextGuid(); + } + }; + + std::thread t1(guidGenerator); + std::thread t2(guidGenerator); + std::thread t3(guidGenerator); + + t1.join(); + t2.join(); + t3.join(); + + uint64_t guid = profilingGuidGenerator.NextGuid(); + BOOST_CHECK(guid == 3000u); +} + BOOST_AUTO_TEST_SUITE_END() |