36 #include <gtest/gtest.h>
43 #include <boost/shared_array.hpp>
44 #include <boost/bind/bind.hpp>
45 #include <boost/thread.hpp>
58 ASSERT_FALSE(queue.
full());
62 ASSERT_TRUE(queue.
full());
66 ASSERT_FALSE(queue.
full());
70 ASSERT_TRUE(queue.
full());
72 ASSERT_TRUE(queue.
ready());
76 ASSERT_TRUE(queue.
full());
81 ASSERT_EQ(helper->calls_, 2u);
91 ASSERT_FALSE(queue.
full());
96 ASSERT_FALSE(queue.
full());
98 for (
int i = 0; i < 10000; ++i)
103 ASSERT_FALSE(queue.
full());
105 for (
int i = 0; i < 10000; ++i)
112 ASSERT_EQ(helper->calls_, 10001u);
177 boost::barrier barrier(2);
199 boost::barrier bar(2);
203 boost::thread t1(
callThread, boost::ref(queue));
204 boost::thread t2(
callThread, boost::ref(queue));
208 ASSERT_EQ(helper->calls_, 2u);
225 boost::thread t1(
callThread, boost::ref(queue));
226 boost::thread t2(
callThread, boost::ref(queue));
230 ASSERT_EQ(helper->calls_, 1u);
232 ASSERT_EQ(helper->calls_, 2u);
235 int main(
int argc,
char** argv)
237 testing::InitGoogleTest(&argc, argv);
239 return RUN_ALL_TESTS();