diff options
Diffstat (limited to 'compiler-rt/lib/xray/tests/unit/buffer_queue_test.cc')
-rw-r--r-- | compiler-rt/lib/xray/tests/unit/buffer_queue_test.cc | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/compiler-rt/lib/xray/tests/unit/buffer_queue_test.cc b/compiler-rt/lib/xray/tests/unit/buffer_queue_test.cc index d46f19402c2..de855fd8519 100644 --- a/compiler-rt/lib/xray/tests/unit/buffer_queue_test.cc +++ b/compiler-rt/lib/xray/tests/unit/buffer_queue_test.cc @@ -21,10 +21,16 @@ namespace __xray { static constexpr size_t kSize = 4096; -TEST(BufferQueueTest, API) { BufferQueue Buffers(kSize, 1); } +TEST(BufferQueueTest, API) { + bool Success = false; + BufferQueue Buffers(kSize, 1, Success); + ASSERT_TRUE(Success); +} TEST(BufferQueueTest, GetAndRelease) { - BufferQueue Buffers(kSize, 1); + bool Success = false; + BufferQueue Buffers(kSize, 1, Success); + ASSERT_TRUE(Success); BufferQueue::Buffer Buf; ASSERT_EQ(Buffers.getBuffer(Buf), std::error_code()); ASSERT_NE(nullptr, Buf.Buffer); @@ -33,7 +39,9 @@ TEST(BufferQueueTest, GetAndRelease) { } TEST(BufferQueueTest, GetUntilFailed) { - BufferQueue Buffers(kSize, 1); + bool Success = false; + BufferQueue Buffers(kSize, 1, Success); + ASSERT_TRUE(Success); BufferQueue::Buffer Buf0; EXPECT_EQ(Buffers.getBuffer(Buf0), std::error_code()); BufferQueue::Buffer Buf1; @@ -42,7 +50,9 @@ TEST(BufferQueueTest, GetUntilFailed) { } TEST(BufferQueueTest, ReleaseUnknown) { - BufferQueue Buffers(kSize, 1); + bool Success = false; + BufferQueue Buffers(kSize, 1, Success); + ASSERT_TRUE(Success); BufferQueue::Buffer Buf; Buf.Buffer = reinterpret_cast<void *>(0xdeadbeef); Buf.Size = kSize; @@ -50,7 +60,9 @@ TEST(BufferQueueTest, ReleaseUnknown) { } TEST(BufferQueueTest, ErrorsWhenFinalising) { - BufferQueue Buffers(kSize, 2); + bool Success = false; + BufferQueue Buffers(kSize, 2, Success); + ASSERT_TRUE(Success); BufferQueue::Buffer Buf; ASSERT_EQ(Buffers.getBuffer(Buf), std::error_code()); ASSERT_NE(nullptr, Buf.Buffer); @@ -62,7 +74,9 @@ TEST(BufferQueueTest, ErrorsWhenFinalising) { } TEST(BufferQueueTest, MultiThreaded) { - BufferQueue Buffers(kSize, 100); + bool Success = false; + BufferQueue Buffers(kSize, 100, Success); + ASSERT_TRUE(Success); auto F = [&] { BufferQueue::Buffer B; while (!Buffers.getBuffer(B)) { @@ -78,4 +92,18 @@ TEST(BufferQueueTest, MultiThreaded) { F(); } +TEST(BufferQueueTest, Apply) { + bool Success = false; + BufferQueue Buffers(kSize, 10, Success); + ASSERT_TRUE(Success); + auto Count = 0; + BufferQueue::Buffer B; + for (int I = 0; I < 10; ++I) { + ASSERT_FALSE(Buffers.getBuffer(B)); + ASSERT_FALSE(Buffers.releaseBuffer(B)); + } + Buffers.apply([&](const BufferQueue::Buffer &B) { ++Count; }); + ASSERT_EQ(Count, 10); +} + } // namespace __xray |