Comments (3)
I would also like to avoid a repeat of ros2/launch#253.
Perhaps run_test.py could load an extension provided by another package, and ament_add_gtest and ament_add_pytest could be extended to take arbitrary arguments? That way run_test.py doesn't need to know about ROS_DOMAIN_ID and we can provide a very thin wrapper that turns on isolation instead of having to replicate all the functionality.
from ament_cmake.
@wjwwood has made some suggestions in an IRL conversation - I will summarize my approach below:
- Refactor domain coordinator into its own python package so it can be used for this, and by launch_testing_ros
- Add an argument to ament_add_test that lets you optionally specify a different test runner and plumb this argument up to ament_add_gtest and ament_add_pytest
- Refactor run_test.py so its core functionality is in a module that can be imported
- Add a new package with a new test runner uses the domain coordinator and sets ROS_DOMAIN_ID. This package will provide
ament_add_isolated_gtest
andament_add_isolated_pytest
which work exactly like ament_add_gtest and ament_add_pytest, but specify the new test runner instead of the original run_test.py
Items 2 and 3 will be done on this repo. Items 1 and 4 would be a better fit for https://github.com/ros2/ament_cmake_ros
from ament_cmake.
Items 2 and 3 are in this PR: #174
Items 1 and 4 are in this PR: ros2/ament_cmake_ros#3
from ament_cmake.
Related Issues (20)
- `ament_auto` macros are too slow? HOT 5
- surround variables with quotes inside `if` ? HOT 3
- ament_add_test default runner cannot handle Catch2 (or generalized) JUnit result files
- Regarding `ament_libraries_deduplicate` implementation HOT 1
- `ament_target_dependencies` does not link PCL properly HOT 2
- Backporting features from `ament_cmake_extension` to `ament_cmake_auto`
- add support for COMPONENTS in `ament_export_dependencies` HOT 2
- "Files to be generated by multiple different commands" Problem in Iron HOT 2
- Using install(DIRECTORY ... TYPE ...) results in "can't find error"
- Using install(DIRECTORY ... TYPE ...) results in "can't find error" HOT 1
- Resolving ament packages at build time HOT 4
- ament_vendor should be able to use mirror site of git HOT 2
- ament_vendor() does not install vendor project to correct path HOT 1
- How to install ament on ubuntu20.04? Or build front the source? HOT 1
- Question about `ament_export_include_directories(include)` and `${PACKAGE_INCLUDE_DIRS}`. HOT 3
- Exporting dependencies of header-only (interface) libraries to downstream packages HOT 3
- ament_pack_build_configuration is very slow for many dependencies HOT 4
- PRIVATE option to ament_target_dependencies does not work HOT 1
- Add support for gmock in ament_cmake_auto
- Enable compulsory sign-off for ament organization or ament_cmake repo? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ament_cmake.