Add test for clearing buffer

This commit is contained in:
2020-04-08 15:27:26 +02:00
parent 9bcd559fae
commit c06310fe0e
+44 -2
View File
@@ -43,8 +43,9 @@ TEST(ZmqRecvModule, basic_interaction)
// Stop should never throw an exception.
zmq_recv_module.stop_recv();
EXPECT_NO_THROW(zmq_recv_module.stop_recv());
zmq_recv_module.stop_saving();
EXPECT_NO_THROW(zmq_recv_module.stop_saving());
zmq_recv_module.stop_saving_and_clear_buffer();
EXPECT_NO_THROW(zmq_recv_module.stop_saving_and_clear_buffer());
}
TEST(ZmqRecvModule, simple_recv)
@@ -78,3 +79,44 @@ TEST(ZmqRecvModule, simple_recv)
ASSERT_TRUE(ring_buffer.is_empty());
}
TEST(ZmqRecvModule, stop_saving_and_clear_buffer)
{
size_t n_msg = 10;
thread sender(generate_stream, n_msg);
RingBuffer ring_buffer(n_msg);
ZmqRecvModule zmq_recv_module(ring_buffer, {});
zmq_recv_module.start_saving();
zmq_recv_module.start_recv("tcp://127.0.0.1:11000", 4);
sender.join();
this_thread::sleep_for(chrono::milliseconds(100));
ASSERT_FALSE(ring_buffer.is_empty());
zmq_recv_module.stop_saving_and_clear_buffer();
ASSERT_TRUE(ring_buffer.is_empty());
thread sender2(generate_stream, 2);
sender2.join();
this_thread::sleep_for(chrono::milliseconds(100));
// No messages should be saved from this run.
ASSERT_TRUE(ring_buffer.is_empty());
zmq_recv_module.start_saving();
thread sender3(generate_stream, 2);
sender3.join();
this_thread::sleep_for(chrono::milliseconds(100));
ASSERT_FALSE(ring_buffer.is_empty());
// stop_recv does not invalidate the buffer.
zmq_recv_module.stop_recv();
ASSERT_FALSE(ring_buffer.is_empty());
zmq_recv_module.stop_saving_and_clear_buffer();
ASSERT_TRUE(ring_buffer.is_empty());
}