#include #include using namespace robosense::lidar; TEST(TestSyncQueue, emptyPop) { SyncQueue> queue; ASSERT_TRUE(queue.pop().get() == NULL); ASSERT_TRUE(queue.popWait(1000).get() == NULL); } TEST(TestSyncQueue, nulPtrPop) { SyncQueue> queue; { std::shared_ptr n_ptr; ASSERT_EQ(queue.push(n_ptr), 1); ASSERT_TRUE(queue.pop().get() == NULL); } { std::shared_ptr n_ptr; ASSERT_EQ(queue.push(n_ptr), 1); ASSERT_TRUE(queue.popWait(1000).get() == NULL); } } TEST(TestSyncQueue, valPtrPop) { SyncQueue> queue; { std::shared_ptr v_ptr = std::make_shared(100); ASSERT_EQ(queue.push(v_ptr), 1); ASSERT_TRUE(queue.pop().get() != NULL); } { std::shared_ptr v_ptr = std::make_shared(100); ASSERT_EQ(queue.push(v_ptr), 1); ASSERT_TRUE(queue.popWait(1000).get() != NULL); } } TEST(TestSyncQueue, clear) { SyncQueue> queue; std::shared_ptr v_ptr = std::make_shared(100); ASSERT_EQ(queue.push(v_ptr), 1); ASSERT_EQ(queue.push(v_ptr), 2); queue.clear(); ASSERT_EQ(queue.push(v_ptr), 1); }