diff --git a/system_metrics_collector/CMakeLists.txt b/system_metrics_collector/CMakeLists.txt index 4dd37c8c..792abfc1 100644 --- a/system_metrics_collector/CMakeLists.txt +++ b/system_metrics_collector/CMakeLists.txt @@ -127,6 +127,11 @@ if(BUILD_TESTING) test/system_metrics_collector/test_utilities.cpp) target_link_libraries(test_utilities system_metrics_collector) ament_target_dependencies(test_utilities rclcpp) + + ament_add_gtest(test_subscriber_topic_statistics + test/topic_statistics_collector/test_subscriber_topic_statistics.cpp) + target_link_libraries(test_subscriber_topic_statistics system_metrics_collector) + ament_target_dependencies(test_subscriber_topic_statistics rcl rclcpp sensor_msgs) endif() # Install launch files diff --git a/system_metrics_collector/package.xml b/system_metrics_collector/package.xml index 96c24914..a3dd195c 100644 --- a/system_metrics_collector/package.xml +++ b/system_metrics_collector/package.xml @@ -27,6 +27,7 @@ ament_lint_common class_loader lifecycle_msgs + sensor_msgs python3-retrying diff --git a/system_metrics_collector/src/topic_statistics_collector/subscriber_topic_statistics.hpp b/system_metrics_collector/src/topic_statistics_collector/subscriber_topic_statistics.hpp index 2ed506f5..191e5e85 100644 --- a/system_metrics_collector/src/topic_statistics_collector/subscriber_topic_statistics.hpp +++ b/system_metrics_collector/src/topic_statistics_collector/subscriber_topic_statistics.hpp @@ -26,16 +26,22 @@ #include "rclcpp/rclcpp.hpp" #include "rcpputils/asserts.hpp" -#include "received_message_age.hpp" -#include "received_message_period.hpp" +#include "libstatistics_collector/topic_statistics_collector/received_message_age.hpp" +#include "libstatistics_collector/topic_statistics_collector/received_message_period.hpp" +#include "libstatistics_collector/topic_statistics_collector/topic_statistics_collector.hpp" #include "system_metrics_collector/constants.hpp" #include "system_metrics_collector/metrics_message_publisher.hpp" -#include "topic_statistics_collector.hpp" namespace topic_statistics_collector { +using libstatistics_collector::topic_statistics_collector::TopicStatisticsCollector; +using libstatistics_collector::topic_statistics_collector::ReceivedMessageAgeCollector; +using libstatistics_collector::topic_statistics_collector::ReceivedMessagePeriodCollector; +namespace constants = + libstatistics_collector::topic_statistics_collector::topic_statistics_constants; + /** * Build a positive integer range to use in parameter descriptors. * @@ -147,17 +153,17 @@ class SubscriberTopicStatisticsNode : public system_metrics_collector::MetricsMe const auto collect_topic_desc = buildTopicParameterDescriptor( "The topic to subscribe to, for calculating topic statistics."); collect_topic_name_ = declare_parameter( - topic_statistics_constants::kCollectStatsTopicNameParam, + constants::kCollectStatsTopicNameParam, std::string(), collect_topic_desc); validateStringParam( - topic_statistics_constants::kCollectStatsTopicNameParam, + constants::kCollectStatsTopicNameParam, collect_topic_name_); const auto publish_topic_desc = buildTopicParameterDescriptor( "The topic to publish topic statistics to."); publish_topic_name_ = declare_parameter( - topic_statistics_constants::kPublishStatsTopicNameParam, + constants::kPublishStatsTopicNameParam, system_metrics_collector::collector_node_constants::kStatisticsTopicName, publish_topic_desc); diff --git a/system_metrics_collector/test/topic_statistics_collector/test_subscriber_topic_statistics.cpp b/system_metrics_collector/test/topic_statistics_collector/test_subscriber_topic_statistics.cpp index 3e19f2d3..be61796a 100644 --- a/system_metrics_collector/test/topic_statistics_collector/test_subscriber_topic_statistics.cpp +++ b/system_metrics_collector/test/topic_statistics_collector/test_subscriber_topic_statistics.cpp @@ -22,13 +22,16 @@ #include "lifecycle_msgs/msg/state.hpp" #include "sensor_msgs/msg/imu.hpp" +#include "libstatistics_collector/topic_statistics_collector/constants.hpp" +#include "libstatistics_collector/topic_statistics_collector/topic_statistics_collector.hpp" #include "system_metrics_collector/constants.hpp" -#include "topic_statistics_collector/constants.hpp" #include "topic_statistics_collector/subscriber_topic_statistics.hpp" -#include "topic_statistics_collector/topic_statistics_collector.hpp" #include "../system_metrics_collector/test_functions.hpp" using lifecycle_msgs::msg::State; +using libstatistics_collector::moving_average_statistics::StatisticData; +namespace constants = + libstatistics_collector::topic_statistics_collector::topic_statistics_constants; namespace { @@ -98,9 +101,9 @@ class TestSubscriberTopicStatisticsNode * * @return statistic data collected by all collectors */ - std::vector GetCollectorData() const + std::vector GetCollectorData() const { - std::vector data; + std::vector data; for (const auto & collector : statistics_collectors_) { data.push_back(collector->GetStatisticsResults()); } @@ -185,9 +188,7 @@ class SubscriberTopicStatisticsNodeTestFixture : public testing::Test options.append_parameter_override( system_metrics_collector::collector_node_constants::kPublishPeriodParam, kVeryLongPublishPeriod.count()); - options.append_parameter_override( - topic_statistics_collector::topic_statistics_constants::kCollectStatsTopicNameParam, - kTestTopicName); + options.append_parameter_override(constants::kCollectStatsTopicNameParam, kTestTopicName); imu_publisher_ = std::make_shared(); EXPECT_EQ(imu_publisher_->getSubscriptionCount(), 0); @@ -363,9 +364,7 @@ TEST_F(RclcppFixture, TestConstructorPublishPeriodValidation) { TEST_F(RclcppFixture, TestConstructorTopicNameValidation) { rclcpp::NodeOptions options; - options.append_parameter_override( - topic_statistics_collector::topic_statistics_constants::kCollectStatsTopicNameParam, - std::string()); + options.append_parameter_override(constants::kCollectStatsTopicNameParam, std::string()); ASSERT_THROW( TestSubscriberTopicStatisticsNode("throw", options), @@ -377,9 +376,7 @@ TEST_F(RclcppFixture, TestMetricsMessagePublisher) { options.append_parameter_override( system_metrics_collector::collector_node_constants::kPublishPeriodParam, std::chrono::milliseconds{kTestDuration}.count()); - options.append_parameter_override( - topic_statistics_collector::topic_statistics_constants::kCollectStatsTopicNameParam, - kTestTopicName); + options.append_parameter_override(constants::kCollectStatsTopicNameParam, kTestTopicName); auto test_node = std::make_shared( "TestMetricsMessagePublisher",