SanitizerTest/main.cc
Artur Mukhamadiev 07508ba343 [gtest][tsan] init
:Release Notes:
Trying to find sanitizer problem

:Detailed Notes:
-

:Testing Performed:
-

:QA Notes:
-

:Issues Addressed:
-
2025-06-04 20:50:26 +03:00

34 lines
830 B
C++

#include <gtest/gtest.h>
#include <readerwriterqueue/readerwriterqueue.h>
#include <thread>
static constexpr size_t repeat = 1 << 20;
void producer(moodycamel::ReaderWriterQueue<int>& queue) {
for(int i = 0; i < repeat; ++i) {
while(!queue.try_enqueue(i)) { std::this_thread::yield(); }
}
}
void consumer(moodycamel::ReaderWriterQueue<int>& queue) {
size_t counter = 0;
int val = 0;
while(counter < repeat) {
while(!queue.try_dequeue(val)) {
std::this_thread::yield();
}
++counter;
}
}
TEST(BASIC, rwq) {
moodycamel::ReaderWriterQueue<int> queue;
std::jthread t1{&producer, std::ref(queue)};
std::jthread t2{&consumer, std::ref(queue)};
}
int main(int argc, char** argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}