sync_queue_test.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #include <gtest/gtest.h>
  2. #include <rs_driver/utility/sync_queue.hpp>
  3. using namespace robosense::lidar;
  4. TEST(TestSyncQueue, emptyPop)
  5. {
  6. SyncQueue<std::shared_ptr<int>> queue;
  7. ASSERT_TRUE(queue.pop().get() == NULL);
  8. ASSERT_TRUE(queue.popWait(1000).get() == NULL);
  9. }
  10. TEST(TestSyncQueue, nulPtrPop)
  11. {
  12. SyncQueue<std::shared_ptr<int>> queue;
  13. {
  14. std::shared_ptr<int> n_ptr;
  15. ASSERT_EQ(queue.push(n_ptr), 1);
  16. ASSERT_TRUE(queue.pop().get() == NULL);
  17. }
  18. {
  19. std::shared_ptr<int> n_ptr;
  20. ASSERT_EQ(queue.push(n_ptr), 1);
  21. ASSERT_TRUE(queue.popWait(1000).get() == NULL);
  22. }
  23. }
  24. TEST(TestSyncQueue, valPtrPop)
  25. {
  26. SyncQueue<std::shared_ptr<int>> queue;
  27. {
  28. std::shared_ptr<int> v_ptr = std::make_shared<int>(100);
  29. ASSERT_EQ(queue.push(v_ptr), 1);
  30. ASSERT_TRUE(queue.pop().get() != NULL);
  31. }
  32. {
  33. std::shared_ptr<int> v_ptr = std::make_shared<int>(100);
  34. ASSERT_EQ(queue.push(v_ptr), 1);
  35. ASSERT_TRUE(queue.popWait(1000).get() != NULL);
  36. }
  37. }
  38. TEST(TestSyncQueue, clear)
  39. {
  40. SyncQueue<std::shared_ptr<int>> queue;
  41. std::shared_ptr<int> v_ptr = std::make_shared<int>(100);
  42. ASSERT_EQ(queue.push(v_ptr), 1);
  43. ASSERT_EQ(queue.push(v_ptr), 2);
  44. queue.clear();
  45. ASSERT_EQ(queue.push(v_ptr), 1);
  46. }