Skip to content

Commit 689c48e

Browse files
author
Maxim Egorushkin
committed
Extend try_push test with try_pop and was_full coverage.
1 parent f70d806 commit 689c48e

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

src/tests.cc

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ BOOST_AUTO_TEST_CASE(move_constructor_assignment) {
262262
p = std::move(p2);
263263
}
264264

265-
BOOST_AUTO_TEST_CASE(try_push) {
265+
BOOST_AUTO_TEST_CASE(try_push_pop) {
266266
using Queue = atomic_queue::AtomicQueueB2<
267267
/* T = */ float,
268268
/* A = */ std::allocator<float>,
@@ -275,19 +275,41 @@ BOOST_AUTO_TEST_CASE(try_push) {
275275
Queue q(CAPACITY);
276276
BOOST_CHECK_EQUAL(q.capacity(), CAPACITY);
277277
BOOST_CHECK(q.was_empty());
278+
BOOST_CHECK(!q.was_full());
278279
BOOST_CHECK_EQUAL(q.was_size(), 0u);
279280

281+
// try_pop on empty queue must fail.
282+
float v = -1;
283+
BOOST_CHECK(!q.try_pop(v));
284+
BOOST_CHECK_EQUAL(v, -1);
285+
280286
for(unsigned i = 1; i <= CAPACITY; ++i)
281287
BOOST_CHECK(q.try_push(i));
282288

283289
BOOST_CHECK(!q.was_empty());
290+
BOOST_CHECK(q.was_full());
284291
BOOST_CHECK_EQUAL(q.was_size(), CAPACITY);
285292

286293
for(unsigned i = 1; i <= CAPACITY; ++i)
287294
BOOST_CHECK(!q.try_push(i));
288295

289296
BOOST_CHECK(!q.was_empty());
297+
BOOST_CHECK(q.was_full());
290298
BOOST_CHECK_EQUAL(q.was_size(), CAPACITY);
299+
300+
for(unsigned i = 1; i <= CAPACITY; ++i) {
301+
BOOST_CHECK(q.try_pop(v));
302+
BOOST_CHECK_EQUAL(v, static_cast<float>(i));
303+
}
304+
305+
BOOST_CHECK(q.was_empty());
306+
BOOST_CHECK(!q.was_full());
307+
BOOST_CHECK_EQUAL(q.was_size(), 0u);
308+
309+
// try_pop on empty queue must fail again.
310+
v = -1;
311+
BOOST_CHECK(!q.try_pop(v));
312+
BOOST_CHECK_EQUAL(v, -1);
291313
}
292314

293315
BOOST_AUTO_TEST_CASE(size) {

0 commit comments

Comments
 (0)