#include <aws_ros1_common/sdk_utils/logging/aws_ros_logger.h>#include <gtest/gtest.h>#include <kinesis_manager/kinesis_stream_manager.h>#include <kinesis_manager/stream_definition_provider.h>#include <kinesis_video_msgs/KinesisVideoFrame.h>#include <kinesis_video_streamer/ros_stream_subscription_installer.h>#include <kinesis_video_streamer/streamer.h>#include <kinesis_video_streamer/subscriber_callbacks.h>#include <ros/callback_queue.h>#include <ros/ros.h>#include <rosgraph_msgs/Log.h>#include <queue>#include "kinesis_video_streamer_test_utils.h"
Go to the source code of this file.
Classes | |
| class | KinesisVideoStreamerE2ETest |
| class | KinesisVideoStreamerTestBase |
Macros | |
| #define | ROS_POSTCALLBACK_ASSERT_TRUE(expr) |
| Some tests rely on ROS callback processing which may take time. To avoid unnecessary waits we define a helper macro with the following logic: If the assertion would fail, call available callbacks first. If the assertion would still fail, call available callbacks with a "small" timeout (0.1s). If the assertion would still fail, call available callbacks with a "large" timeout (5s). finally, ASSERT_TRUE. This avoids unnecessary waits and ensures sufficient processing time if needed. More... | |
Functions | |
| void | ImageTransportTestCallback (const KinesisStreamManagerInterface &stream_manager, std::string stream_name, const sensor_msgs::ImageConstPtr &image) |
| INSTANTIATE_TEST_CASE_P (End2EndTest, KinesisVideoStreamerE2ETest,::testing::ValuesIn(callback_tuples)) | |
| void | KinesisVideoFrameTransportTestCallback (KinesisStreamManagerInterface &stream_manager, std::string stream_name, const kinesis_video_msgs::KinesisVideoFrame::ConstPtr &frame_msg) |
| int | main (int argc, char **argv) |
| void | RekognitionEnabledKinesisVideoFrameTransportTestCallback (KinesisStreamManagerInterface &stream_manager, std::string stream_name, const kinesis_video_msgs::KinesisVideoFrame::ConstPtr &frame_msg, const ros::Publisher &publisher) |
| void | rosout_logger_callback (const rosgraph_msgs::Log &published_log) |
| TEST (StreamerGlobalSuite, rosParameterConstruction) | |
| TEST_F (KinesisVideoStreamerTestBase, sanity) | |
| TEST_F (KinesisVideoStreamerTestBase, invalidCallbackShouldReturnFalse) | |
| TEST_F (KinesisVideoStreamerTestBase, codecPrivateDataFailure) | |
| TEST_F (KinesisVideoStreamerTestBase, invalidStreamDefinition) | |
| TEST_F (KinesisVideoStreamerTestBase, streamInitializationFailures) | |
| TEST_P (KinesisVideoStreamerE2ETest, E2ETest) | |
Variables | |
| vector< tuple< Aws::Kinesis::KinesisVideoFrameTransportCallbackFn, Aws::Kinesis::ImageTransportCallbackFn, Aws::Kinesis::RekognitionEnabledKinesisVideoFrameTransportCallbackFn > > | callback_tuples |
| constexpr double | kMultipleCallbacksWaitTime = 5 |
| queue< rosgraph_msgs::Log > * | kRosoutQueue = nullptr |
| constexpr double | kSingleCallbackWaitTime = 0.1 |
| TestData * | kTestData = nullptr |
| #define ROS_POSTCALLBACK_ASSERT_TRUE | ( | expr | ) |
Some tests rely on ROS callback processing which may take time. To avoid unnecessary waits we define a helper macro with the following logic: If the assertion would fail, call available callbacks first. If the assertion would still fail, call available callbacks with a "small" timeout (0.1s). If the assertion would still fail, call available callbacks with a "large" timeout (5s). finally, ASSERT_TRUE. This avoids unnecessary waits and ensures sufficient processing time if needed.
Definition at line 42 of file kinesis_video_streamer_test.cpp.
| void ImageTransportTestCallback | ( | const KinesisStreamManagerInterface & | stream_manager, |
| std::string | stream_name, | ||
| const sensor_msgs::ImageConstPtr & | image | ||
| ) |
Definition at line 208 of file kinesis_video_streamer_test.cpp.
| INSTANTIATE_TEST_CASE_P | ( | End2EndTest | , |
| KinesisVideoStreamerE2ETest | , | ||
| ::testing::ValuesIn(callback_tuples) | |||
| ) |
Perform an end to end test using both the mocked and real callbacks. The mocked callbacks execution is used to check that N published messages result in N invocations of the callback, while execution with the real callbacks checks that N published messages result in N calls to the PutFrame API.
| void KinesisVideoFrameTransportTestCallback | ( | KinesisStreamManagerInterface & | stream_manager, |
| std::string | stream_name, | ||
| const kinesis_video_msgs::KinesisVideoFrame::ConstPtr & | frame_msg | ||
| ) |
Definition at line 201 of file kinesis_video_streamer_test.cpp.
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
Definition at line 413 of file kinesis_video_streamer_test.cpp.
| void RekognitionEnabledKinesisVideoFrameTransportTestCallback | ( | KinesisStreamManagerInterface & | stream_manager, |
| std::string | stream_name, | ||
| const kinesis_video_msgs::KinesisVideoFrame::ConstPtr & | frame_msg, | ||
| const ros::Publisher & | publisher | ||
| ) |
Definition at line 214 of file kinesis_video_streamer_test.cpp.
| void rosout_logger_callback | ( | const rosgraph_msgs::Log & | published_log | ) |
Definition at line 408 of file kinesis_video_streamer_test.cpp.
| TEST | ( | StreamerGlobalSuite | , |
| rosParameterConstruction | |||
| ) |
Definition at line 391 of file kinesis_video_streamer_test.cpp.
| TEST_F | ( | KinesisVideoStreamerTestBase | , |
| sanity | |||
| ) |
Tests success scenario.
Definition at line 97 of file kinesis_video_streamer_test.cpp.
| TEST_F | ( | KinesisVideoStreamerTestBase | , |
| invalidCallbackShouldReturnFalse | |||
| ) |
Definition at line 113 of file kinesis_video_streamer_test.cpp.
| TEST_F | ( | KinesisVideoStreamerTestBase | , |
| codecPrivateDataFailure | |||
| ) |
Codec private data loading failure
Definition at line 122 of file kinesis_video_streamer_test.cpp.
| TEST_F | ( | KinesisVideoStreamerTestBase | , |
| invalidStreamDefinition | |||
| ) |
Invalid stream definitions
Definition at line 138 of file kinesis_video_streamer_test.cpp.
| TEST_F | ( | KinesisVideoStreamerTestBase | , |
| streamInitializationFailures | |||
| ) |
InitializeVideoStream failure
Subscription failure
Definition at line 153 of file kinesis_video_streamer_test.cpp.
| TEST_P | ( | KinesisVideoStreamerE2ETest | , |
| E2ETest | |||
| ) |
Definition at line 371 of file kinesis_video_streamer_test.cpp.
| vector< tuple<Aws::Kinesis::KinesisVideoFrameTransportCallbackFn, Aws::Kinesis::ImageTransportCallbackFn, Aws::Kinesis::RekognitionEnabledKinesisVideoFrameTransportCallbackFn> > callback_tuples |
Definition at line 376 of file kinesis_video_streamer_test.cpp.
| constexpr double kMultipleCallbacksWaitTime = 5 |
Definition at line 33 of file kinesis_video_streamer_test.cpp.
| queue<rosgraph_msgs::Log>* kRosoutQueue = nullptr |
Definition at line 59 of file kinesis_video_streamer_test.cpp.
| constexpr double kSingleCallbackWaitTime = 0.1 |
Definition at line 32 of file kinesis_video_streamer_test.cpp.
| TestData* kTestData = nullptr |
Definition at line 60 of file kinesis_video_streamer_test.cpp.