Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
adb4e60
feat: add ros2_medkit_integration_tests package skeleton
bburda Feb 19, 2026
2e70673
feat: add ros2_medkit_test_utils shared test library
bburda Feb 19, 2026
3210366
feat: move demo nodes and launch file to integration test package
bburda Feb 19, 2026
482a42e
feat: add test_health feature test — validates new package E2E
bburda Feb 19, 2026
c28be74
feat: migrate feature tests from test_integration.test.py
bburda Feb 19, 2026
d8be319
feat: migrate auth, CORS, TLS, and heuristic discovery feature tests
bburda Feb 19, 2026
4485fef
feat: add scenario tests — self-contained E2E stories
bburda Feb 19, 2026
5af7675
feat: add discovery mode scenario tests (manifest, hybrid)
bburda Feb 19, 2026
744085a
feat: migrate bulk data upload and subscriptions scenario tests
bburda Feb 19, 2026
3c60bff
refactor: remove integration tests and demo nodes from gateway
bburda Feb 19, 2026
d8139ae
fix: resolve CI failures in integration tests
bburda Feb 19, 2026
a960b05
fix: graceful shutdown for all demo nodes
bburda Feb 19, 2026
2d24884
docs: add README, design doc, and fix stale references for integratio…
bburda Feb 19, 2026
032e44d
fix: resolve CI failures and exclude vendored code from coverage
bburda Feb 19, 2026
5d061a6
fix: use unique node names in fault_manager tests for Humble DDS compat
bburda Feb 19, 2026
88e0dab
feat: migrate rate limiting integration test to integration tests pac…
bburda Feb 20, 2026
f0d0c3f
chore: remove stale "Migrated from" comments from integration tests
bburda Feb 20, 2026
6fe0f02
fix: add generic endpoint polling to GatewayTestCase and fix Jazzy CI…
bburda Feb 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,11 @@ jobs:
lcov --extract coverage.raw.info \
'*/ros2_medkit/src/*/src/*' \
'*/ros2_medkit/src/*/include/*' \
--output-file coverage.extracted.info \
--ignore-errors unused,empty

lcov --remove coverage.extracted.info \
'*/vendored/*' \
--output-file coverage.info \
--ignore-errors unused,empty

Expand Down
1 change: 1 addition & 0 deletions codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ ignore:
- "test/**/*" # Test files
- "**/test_*.cpp" # Test source files
- "**/demo_nodes/**" # Demo nodes (test fixtures)
- "**/vendored/**" # Third-party vendored code
- "build/**/*" # Build artifacts
- "install/**/*" # Install artifacts
- "log/**/*" # Log files
Expand Down
2 changes: 1 addition & 1 deletion docs/design/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ This section contains design documentation for the ros2_medkit project packages.
ros2_medkit_fault_manager/index
ros2_medkit_fault_reporter/index
ros2_medkit_gateway/index
ros2_medkit_integration_tests/index
ros2_medkit_serialization/index

1 change: 1 addition & 0 deletions docs/design/ros2_medkit_integration_tests
5 changes: 3 additions & 2 deletions docs/getting_started.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,10 @@ You should see:

.. code-block:: bash

ros2 launch ros2_medkit_gateway demo_nodes.launch.py
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py

This launches automotive demo nodes that we'll use to explore the API.
This launches automotive demo nodes from the integration tests package that we'll
use to explore the API.

.. list-table:: Demo Nodes Created by demo_nodes.launch.py
:header-rows: 1
Expand Down
4 changes: 3 additions & 1 deletion docs/introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@ ros2_medkit consists of several ROS 2 packages:
**ros2_medkit_msgs**
Message and service definitions for fault management.

**ros2_medkit_integration_tests**
Integration tests, automotive-themed demo nodes, and shared test utilities.

Next Steps
----------

Expand All @@ -76,4 +79,3 @@ Community
- 💬 **Discord**: `Join our server <https://discord.gg/6CXPMApAyq>`_
- 🐛 **Issues**: `Report bugs <https://github.com/selfpatch/ros2_medkit/issues>`_
- 💡 **Discussions**: `GitHub Discussions <https://github.com/selfpatch/ros2_medkit/discussions>`_

4 changes: 2 additions & 2 deletions docs/tutorials/devcontainer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,8 @@ Running Tests
# All tests
colcon test && colcon test-result --verbose

# Unit tests only
colcon test --ctest-args -E test_integration
# Unit tests only (exclude integration tests package)
colcon test --packages-skip ros2_medkit_integration_tests

# Linters only
colcon test --ctest-args -L linters
Expand Down
186 changes: 0 additions & 186 deletions src/ros2_medkit_gateway/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@ find_package(yaml_cpp_vendor REQUIRED)
medkit_find_yaml_cpp()
find_package(ament_index_cpp REQUIRED)
find_package(action_msgs REQUIRED)
find_package(rclcpp_action REQUIRED)
find_package(example_interfaces REQUIRED)
find_package(ros2_medkit_msgs REQUIRED)
find_package(ros2_medkit_serialization REQUIRED)

Expand Down Expand Up @@ -391,190 +389,6 @@ if(BUILD_TESTING)
endforeach()
endif()

# Integration testing
find_package(ament_cmake_pytest REQUIRED)
find_package(launch_testing_ament_cmake REQUIRED)

# Install test directory
install(DIRECTORY test
DESTINATION share/${PROJECT_NAME}
)

# Add integration tests
add_launch_test(
test/test_integration.test.py
TARGET test_integration
TIMEOUT 600
)

# Add CORS integration tests
add_launch_test(
test/test_cors.test.py
TARGET test_cors
TIMEOUT 60
)

# Add rate limiting integration tests
add_launch_test(
test/test_rate_limiting.test.py
TARGET test_rate_limiting
TIMEOUT 90
)

# Add authentication integration tests
add_launch_test(
test/test_auth.test.py
TARGET test_auth
TIMEOUT 120
)

# Add TLS/HTTPS integration tests
add_launch_test(
test/test_tls.test.py
TARGET test_tls
TIMEOUT 120
)

# Add manifest-only discovery integration tests
add_launch_test(
test/test_discovery_manifest.test.py
TARGET test_discovery_manifest
TIMEOUT 120
)

# Add hybrid discovery integration tests
add_launch_test(
test/test_discovery_hybrid.test.py
TARGET test_discovery_hybrid
TIMEOUT 120
)

# Add heuristic apps discovery integration tests
add_launch_test(
test/test_discovery_heuristic_apps.test.py
TARGET test_discovery_heuristic_apps
TIMEOUT 120
)

# Add bulk data upload/delete integration tests
add_launch_test(
test/test_bulkdata_upload.test.py
TARGET test_bulkdata_upload
TIMEOUT 120
)

# Add cyclic subscriptions integration tests
add_launch_test(
test/test_cyclic_subscriptions.test.py
TARGET test_cyclic_subscriptions
TIMEOUT 120
)

# Demo automotive nodes
add_executable(demo_engine_temp_sensor
test/demo_nodes/engine_temp_sensor.cpp
)
ament_target_dependencies(demo_engine_temp_sensor
rclcpp
rcl_interfaces
sensor_msgs
)
install(TARGETS demo_engine_temp_sensor
DESTINATION lib/${PROJECT_NAME}
)

add_executable(demo_rpm_sensor
test/demo_nodes/rpm_sensor.cpp
)
ament_target_dependencies(demo_rpm_sensor
rclcpp
std_msgs
)
install(TARGETS demo_rpm_sensor
DESTINATION lib/${PROJECT_NAME}
)

add_executable(demo_brake_pressure_sensor
test/demo_nodes/brake_pressure_sensor.cpp
)
ament_target_dependencies(demo_brake_pressure_sensor
rclcpp
std_msgs
)
install(TARGETS demo_brake_pressure_sensor
DESTINATION lib/${PROJECT_NAME}
)

add_executable(demo_door_status_sensor
test/demo_nodes/door_status_sensor.cpp
)
ament_target_dependencies(demo_door_status_sensor
rclcpp
std_msgs
)
install(TARGETS demo_door_status_sensor
DESTINATION lib/${PROJECT_NAME}
)

# demo actuators
add_executable(demo_brake_actuator
test/demo_nodes/brake_actuator.cpp
)
ament_target_dependencies(demo_brake_actuator
rclcpp
std_msgs
)
install(TARGETS demo_brake_actuator
DESTINATION lib/${PROJECT_NAME}
)

add_executable(demo_light_controller
test/demo_nodes/light_controller.cpp
)
ament_target_dependencies(demo_light_controller
rclcpp
std_msgs
)
install(TARGETS demo_light_controller
DESTINATION lib/${PROJECT_NAME}
)

add_executable(demo_calibration_service
test/demo_nodes/calibration_service.cpp
)
ament_target_dependencies(demo_calibration_service
rclcpp
std_srvs
)
install(TARGETS demo_calibration_service
DESTINATION lib/${PROJECT_NAME}
)

add_executable(demo_long_calibration_action
test/demo_nodes/long_calibration_action.cpp
)
ament_target_dependencies(demo_long_calibration_action
rclcpp
rclcpp_action
example_interfaces
)
install(TARGETS demo_long_calibration_action
DESTINATION lib/${PROJECT_NAME}
)

add_executable(demo_lidar_sensor
test/demo_nodes/lidar_sensor.cpp
)
ament_target_dependencies(demo_lidar_sensor
rclcpp
rcl_interfaces
sensor_msgs
std_srvs
ros2_medkit_msgs
)
install(TARGETS demo_lidar_sensor
DESTINATION lib/${PROJECT_NAME}
)
endif()

ament_package()
6 changes: 0 additions & 6 deletions src/ros2_medkit_gateway/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,6 @@
<test_depend>ament_cmake_clang_format</test_depend>
<test_depend>ament_cmake_clang_tidy</test_depend>
<test_depend>ament_cmake_gtest</test_depend>
<test_depend>ament_cmake_pytest</test_depend>
<test_depend>launch_testing_ament_cmake</test_depend>
<test_depend>python3-requests</test_depend>
<test_depend>rclcpp_action</test_depend>
<test_depend>example_interfaces</test_depend>
<test_depend>ros2_medkit_fault_manager</test_depend>

<export>
<build_type>ament_cmake</build_type>
Expand Down
Loading