ros-tooling / system_metrics_collector

[DEPRECATED] Lightweight, real-time system metrics collector for ROS2 systems
Apache License 2.0
18 stars 8 forks source link

Fix test subscriber failures #126

Closed dabonnie closed 4 years ago

dabonnie commented 4 years ago

Closes #124. This refactors the topic statistics subscriber tests to use futures to signal successful events rather than waiting on timing conditions.

Signed-off-by: Devin Bonnie dbbonnie@amazon.com

dabonnie commented 4 years ago

Currently running ./test_subscriber_topic_statistics --gtest_repeat=-1 --gtest_break_on_failure locally. Will provide results tomorrow (if positive, otherwise more fixes on the horizon).

dabonnie commented 4 years ago

Last test run:

Repeating all tests (iteration 2422) . . .

[==========] Running 7 tests from 2 test cases.
[----------] Global test environment set-up.
[----------] 4 tests from SubscriberTopicStatisticsNodeTestFixture
[ RUN      ] SubscriberTopicStatisticsNodeTestFixture.TestStartAndStop
[       OK ] SubscriberTopicStatisticsNodeTestFixture.TestStartAndStop (12 ms)
[ RUN      ] SubscriberTopicStatisticsNodeTestFixture.TestSubscriptionCallback
[       OK ] SubscriberTopicStatisticsNodeTestFixture.TestSubscriptionCallback (1023 ms)
[ RUN      ] SubscriberTopicStatisticsNodeTestFixture.TestLifecycleManually_reactivate
[       OK ] SubscriberTopicStatisticsNodeTestFixture.TestLifecycleManually_reactivate (19 ms)
[ RUN      ] SubscriberTopicStatisticsNodeTestFixture.TestMetricsMessagePublisher
[       OK ] SubscriberTopicStatisticsNodeTestFixture.TestMetricsMessagePublisher (1032 ms)
[----------] 4 tests from SubscriberTopicStatisticsNodeTestFixture (2087 ms total)

[----------] 3 tests from RclcppFixture
[ RUN      ] RclcppFixture.TestConstructorNodeNameValidation
[       OK ] RclcppFixture.TestConstructorNodeNameValidation (0 ms)
[ RUN      ] RclcppFixture.TestConstructorPublishPeriodValidation
Calculated port number is too high. Probably the domainId is over 232, there are too much participants created or portBase is too high.
2020-04-02 23:38:56.183 [RTPS Error] Calculated port number is too high. Probably the domainId is over 232, there are too much participants created or portBase is too high. -> Function getUnicastPort

Running overnight with export ROS_DOMAIN_ID=242; ./test_subscriber_topic_statistics --gtest_repeat=-1 --gtest_break_on_failure

codecov[bot] commented 4 years ago

Codecov Report

Merging #126 into master will increase coverage by 0.87%. The diff coverage is 43.05%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #126      +/-   ##
==========================================
+ Coverage   36.91%   37.78%   +0.87%     
==========================================
  Files          32       32              
  Lines        1406     1429      +23     
  Branches      877      884       +7     
==========================================
+ Hits          519      540      +21     
+ Misses         85       75      -10     
- Partials      802      814      +12     
Flag Coverage Δ
#unittests 37.78% <43.05%> (+0.87%) :arrow_up:
Impacted Files Coverage Δ
...atistics_collector/subscriber_topic_statistics.hpp 51.28% <ø> (+6.41%) :arrow_up:
...m_metrics_collector/test_linux_cpu_measurement.cpp 18.26% <0.00%> (-0.17%) :arrow_down:
...etrics_collector/test_linux_memory_measurement.cpp 20.68% <0.00%> (-0.18%) :arrow_down:
...lector/test_linux_process_cpu_measurement_node.cpp 25.21% <0.00%> (-0.22%) :arrow_down:
...ics_collector/test_subscriber_topic_statistics.cpp 39.18% <38.59%> (+3.28%) :arrow_up:
...r/test/system_metrics_collector/test_functions.hpp 54.83% <100.00%> (+3.96%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 090da35...7ba1c0d. Read the comment docs.

dabonnie commented 4 years ago

Last nights test run:

Repeating all tests (iteration 1141) . . .

[==========] Running 7 tests from 2 test cases.
[----------] Global test environment set-up.
[----------] 4 tests from SubscriberTopicStatisticsNodeTestFixture
[ RUN      ] SubscriberTopicStatisticsNodeTestFixture.TestStartAndStop
[       OK ] SubscriberTopicStatisticsNodeTestFixture.TestStartAndStop (8 ms)
[ RUN      ] SubscriberTopicStatisticsNodeTestFixture.TestSubscriptionCallback
[       OK ] SubscriberTopicStatisticsNodeTestFixture.TestSubscriptionCallback (1010 ms)
[ RUN      ] SubscriberTopicStatisticsNodeTestFixture.TestLifecycleManually_reactivate
[       OK ] SubscriberTopicStatisticsNodeTestFixture.TestLifecycleManually_reactivate (17 ms)
[ RUN      ] SubscriberTopicStatisticsNodeTestFixture.TestMetricsMessagePublisher
Calculated port number is too high. Probably the domainId is over 232, there are too much participants created or portBase is too high.
2020-04-03 01:40:47.067 [RTPS Error] Calculated port number is too high. Probably the domainId is over 232, there are too much participants created or portBase is too high. -> Function getUnicastPort

So not sure how to work around the port issue, but the tests appear to be solid.