1 /* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
3 #include "base/fifo.hpp"
4 #include "base/objectlock.hpp"
5 #include <BoostTestTargetConfig.h>
7 using namespace icinga;
9 BOOST_AUTO_TEST_SUITE(base_fifo)
11 BOOST_AUTO_TEST_CASE(construct)
13 FIFO::Ptr fifo = new FIFO();
15 BOOST_CHECK(fifo->GetAvailableBytes() == 0);
20 BOOST_AUTO_TEST_CASE(io)
22 FIFO::Ptr fifo = new FIFO();
24 fifo->Write("hello", 5);
25 BOOST_CHECK(fifo->GetAvailableBytes() == 5);
28 fifo->Read(buffer1, 2, true);
29 BOOST_CHECK(memcmp(buffer1, "he", 2) == 0);
30 BOOST_CHECK(fifo->GetAvailableBytes() == 3);
33 size_t rc = fifo->Read(buffer2, 5, true);
35 BOOST_CHECK(memcmp(buffer2, "llo", 3) == 0);
36 BOOST_CHECK(fifo->GetAvailableBytes() == 0);
38 BOOST_CHECK(!fifo->IsEof());
43 BOOST_AUTO_TEST_SUITE_END()