-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable parameters tests #44
Conversation
|
||
int main(int argc, char ** argv) | ||
{ | ||
rclcpp::init(argc, argv); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Without this custom main rclcpp::init
is not called anywhere.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed, added rclcpp::init
to the tests.
In faea4a5#diff-a9fbdd47e2e789e3da282a7c222d166dR158 it looks to me that the test will never be built, because the target is not set anywhere. Should that be changed? |
|
@dirk-thomas is that a reply to my question or to something in the code of the pull request? If it's the former, I can't seem to find where the target |
Sorry, I looked at the wrong target Yes, checking for the |
@dirk-thomas no problem :-) I removed the check so that the executables are always built. |
c5a55b6
to
2c4d814
Compare
I've added a custom main to the timer tests, updated the PR description to reflect the changes and squashed the commits. Tests pass locally on Linux, these are the CI jobs: http://ci.ros2.org/job/ros2_batch_ci_windows/378/ (pending, Windows slave is offline) tests may on Windows, since services don't work on that platform (I'm working on that on another branch). |
I have separated the |
@dirk-thomas thanks! |
0f79015
to
7d512b8
Compare
@dirk-thomas I just squashed the branch to include your change. |
ament_target_dependencies(test_parameters_server_cpp__${middleware_impl} | ||
"${middleware_impl}" | ||
"rclcpp") | ||
set(TEST_PARAMETERS_SERVER_EXECUTABLE "${CMAKE_CURRENT_BINARY_DIR}${test_executable_subfolder}/test_parameters_server_cpp__${middleware_impl}${test_executable_extension}") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The variable test_executable_extension
seems not to be defined. In order to work on Windows I think something like ament/ament_cmake#28 will be necessary to point to the correct location of the .exe
file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's this snippet in https://github.com/ros2/system_tests/blob/master/test_communication/CMakeLists.txt#L44 to set test_executable_extension
for the tests in test_communication
, but seems cumbersome to add it to every CMakeLists.txt
How would the approach from ament/ament_cmake#28 work? Using get_target_property(executable "${target}" LOCATION)
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
test_executable_extension
is not sufficient. I don't think it works for the test_communication package.
Yes LOCATION
, and replacing the configuration variable with a generator expression.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I changed CMakeLists.txt
to use get_target_property(...)
, tests pass. If the changes look fine, I'll update test_communication
to use the same approach too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I ended up updating test_communication
anyway :-)
Current CI not passing yet. Moving back to in-progress. |
There's not much work left to do in this PR, the CI just shows that the parameters tests are not actually added to CMake on master. |
I've pushed this branch as http://ci.ros2.org/job/ros2_batch_ci_linux/339/ I couldn't get the tests to fail locally, though, despite multiple runs. The Windows CI job fails because it can't find the GTest headers, I'm working on that: |
GTest include dirs fixed, moving back to review. |
I see a few local test failures (Linux):
I built it with the services QoS fix but they still fail. I'm not sure if it's a problem with my local setup. Also, I wonder if it has to do with merging the fix_future changes, though the jenkins build for that branch was okay. |
The Jenkins build passed becase these tests didn't run on master, the CMake targets were not added properly. |
I've run this PR along with the |
Are the |
On another note: the remote_parameters tests and parameters_server tests hang on my machine, but pass on Jenkins. Is there a step I'm missing here? |
I've removed the http://ci.ros2.org/job/ros2_batch_ci_windows/409/ the timer test fails on OSX (which seems unrelated to these changes) and parameter_server_cpp__rmw_connext_dynamic_cpp on Linux. The latter seems to be the what @jacquelinekay has seen locally, my guess is that it could be related to the QoS fix for ros2/rmw_connext#96 |
Since the CI job links themself are not very informative I compared them to current jobs run against master: The new parameter_server test on Linux (http://ci.ros2.org/job/ros2_batch_ci_linux/364/testReport/(root)/test_rclcpp/parameter_server_cpp__rmw_connext_dynamic_cpp_xunit_missing_result/) seems to timeout. Since it doesn't print anything I don't know what could cause that. The failing test on OS X (http://ci.ros2.org/job/ros2_batch_ci_osx/273/testReport/(root)/test_time__rmw_connext_cpp/timer_during_wait/) seems to be the flaky one ticketed here: #36 On Windows it adds 14 new tests and fails 16 tests more than plain master. I can't see what the difference is due to the amount of failing tests. |
Especially the tests failing with |
@dirk-thomas when the @jacquelinekay Windows is currently a bit of a mess, many other tests fail too. I'll fix the ones that can't find the executables, but the rest will require more work. |
I've replaced |
a2548d2
to
84dc22f
Compare
233cf91
to
5024493
Compare
This now passes on Windows locally, let's see if it does on the farm: http://ci.ros2.org/job/ros2_batch_ci_linux/453/ |
5024493
to
115a6e0
Compare
CI after rebasing against master: http://ci.ros2.org/job/ros2_batch_ci_linux/457/ previous run failed on Windows, but I can't reproduce it locally after multiple runs. |
So it seems the failing tests on Windows are only for RTI Connext, this might be related to ros2/rmw_connext#31 The OpenSplice versions of the tests pass on Windows: http://ci.ros2.org/job/ros2_batch_ci_windows/513/testReport/%28root%29/test_local_parameters__rmw_opensplice_cpp/ |
+1 with squash. I am also convinced that the failures on Windows are due to the requester/replier issue. |
78e4bf0
to
dde3a31
Compare
Squashed and merging now. |
Make sure that parameters tests are built and run.