Skip to content
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

Porting test_tf2 #203

Merged
merged 46 commits into from
Jan 22, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
d3d143b
Initial port of test_tf2 - wip
ahcorde Dec 4, 2019
e70e2c7
test_tf2 port test_utils
ahcorde Dec 4, 2019
70186f6
test_tf2 ported test_message_filter
ahcorde Dec 4, 2019
f741201
test_tf2 ported test_buffer_server.cpp
ahcorde Dec 5, 2019
dd68d80
test_tf2 ported test_buffer_client
ahcorde Dec 17, 2019
6a8dc8e
test_tf2 ported test_statis_publisher
ahcorde Dec 17, 2019
86df753
test_tf2 ported test_tf2_bullet
ahcorde Dec 17, 2019
2b497a3
tf2_test ported python tests
ahcorde Dec 17, 2019
6e0417c
Added more tests to tf2_ros
ahcorde Dec 4, 2019
d6a2fa9
test_tf2 using emplace_back in permuter.hpp
ahcorde Dec 17, 2019
d2cfd5c
test_tf2 ported test_convert.cpp
ahcorde Dec 17, 2019
1f9bdd2
fixed package.xml and CMakeLists.txt
ahcorde Dec 17, 2019
e032eea
test_tf2 some improvements buffer_core_test.cpp
ahcorde Dec 17, 2019
4d8f8f6
test_tf2 permutter.hpp no semicolon after a method.
ahcorde Dec 18, 2019
51e2ce2
test_tf2 test_message_filter fix
ahcorde Dec 18, 2019
469d064
test_tf2 permutter.hpp brace on the next line
ahcorde Dec 18, 2019
d74a2b3
test_tf2 test_utils added TODO
ahcorde Dec 18, 2019
da0bf6c
test_tf2_ fixed test_message_filter
ahcorde Dec 19, 2019
7e5d582
test_tf2 fixed test_buffer_client
ahcorde Dec 19, 2019
cc1a957
test_tf2 fixed test_static_publisher
ahcorde Dec 19, 2019
d36935e
test_tf2 add test_buffer_client.py test
ahcorde Dec 19, 2019
8526dc1
test_tf2 disabled tf2_kdl
ahcorde Dec 19, 2019
a70b80f
test_tf2 fixed buffer_core_test.cpp
ahcorde Dec 19, 2019
2057d58
Merge branch 'ros2' of https://github.com/ros2/geometry2 into ahcorde…
ahcorde Dec 19, 2019
5f12b5a
Restoring tf2_ros files
ahcorde Jan 7, 2020
8dcc5f6
Update test_tf2/test/permuter.hpp
ahcorde Jan 13, 2020
85e11a1
Update test_tf2/test/permuter.hpp
ahcorde Jan 13, 2020
f774347
alphabetize cmake
ahcorde Jan 14, 2020
215f5cb
add brackets test_tf2 permutter.cpp
ahcorde Jan 14, 2020
201e64d
removed comment test_static_publisher.cpp
ahcorde Jan 14, 2020
8b55f05
Improved TODO message
ahcorde Jan 14, 2020
ee847c6
test_tf2 Improved headers and removed some unnecessary code
ahcorde Jan 14, 2020
fab5031
Commented bullet dependency
ahcorde Jan 14, 2020
b6b21cd
Improved package.xml test_tf2
ahcorde Jan 14, 2020
a099594
Fixed cmakelists
ahcorde Jan 14, 2020
ef1c040
Update package.xml test_tf2
ahcorde Jan 15, 2020
aeee191
test_tf2 including math contanst in Windows
ahcorde Jan 15, 2020
9ab51fa
Added launch_ros depend in package.xml
ahcorde Jan 15, 2020
740a310
test_tf2 changed 0.0/0.0 for NaN
ahcorde Jan 15, 2020
f720bbb
Fixed permutter define
ahcorde Jan 16, 2020
22c41a5
Fixed MACOS issue with gtest
ahcorde Jan 16, 2020
68e2608
fixed compiler warnings
ahcorde Jan 15, 2020
562ac61
replaced deprecated constPtr
ahcorde Jan 15, 2020
fbfb21c
Included suggestions
ahcorde Jan 20, 2020
51a9a06
Merge branch 'ros2' into ahcorde/test/test_tf2
ahcorde Jan 20, 2020
3dd26d9
fixed ring_45_configuration test_tf2
ahcorde Jan 22, 2020
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
Empty file removed test_tf2/AMENT_IGNORE
Empty file.
169 changes: 119 additions & 50 deletions test_tf2/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,62 +1,131 @@
cmake_minimum_required(VERSION 3.5)

if(NOT CATKIN_ENABLE_TESTING)
if(NOT BUILD_TESTING)
return()
endif()

project(test_tf2)


find_package(catkin REQUIRED COMPONENTS rosconsole roscpp rostest tf tf2 tf2_bullet tf2_ros tf2_geometry_msgs tf2_kdl tf2_msgs)
find_package(Boost REQUIRED COMPONENTS thread)
find_package(orocos_kdl REQUIRED)


include_directories(${Boost_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS} ${orocos_kdl_INCLUDE_DIRS})

link_directories(${orocos_kdl_LIBRARY_DIRS})

catkin_package()

catkin_add_gtest(buffer_core_test test/buffer_core_test.cpp)
target_link_libraries(buffer_core_test ${Boost_LIBRARIES} ${catkin_LIBRARIES} ${orocos_kdl_LIBRARIES})

catkin_add_gtest(test_tf2_message_filter test/test_message_filter.cpp)
target_link_libraries(test_tf2_message_filter ${Boost_LIBRARIES} ${catkin_LIBRARIES})

catkin_add_gtest(test_convert test/test_convert.cpp)
target_link_libraries(test_convert ${Boost_LIBRARIES} ${catkin_LIBRARIES} ${orocos_kdl_LIBRARIES})

catkin_add_gtest(test_utils test/test_utils.cpp)
target_link_libraries(test_utils ${Boost_LIBRARIES} ${catkin_LIBRARIES} ${orocos_kdl_LIBRARIES})
set(CMAKE_CXX_STANDARD 14)

add_executable(test_buffer_server EXCLUDE_FROM_ALL test/test_buffer_server.cpp)
target_link_libraries(test_buffer_server ${Boost_LIBRARIES} ${catkin_LIBRARIES} ${GTEST_LIBRARIES})

add_executable(test_buffer_client EXCLUDE_FROM_ALL test/test_buffer_client.cpp)
target_link_libraries(test_buffer_client ${Boost_LIBRARIES} ${catkin_LIBRARIES} ${GTEST_LIBRARIES} ${orocos_kdl_LIBRARIES})


add_rostest(test/buffer_client_tester.launch)

add_executable(test_static_publisher EXCLUDE_FROM_ALL test/test_static_publisher.cpp)
target_link_libraries(test_static_publisher ${Boost_LIBRARIES} ${catkin_LIBRARIES} ${GTEST_LIBRARIES})

add_rostest(test/static_publisher.launch)


add_executable(test_tf2_bullet EXCLUDE_FROM_ALL test/test_tf2_bullet.cpp)
target_link_libraries(test_tf2_bullet ${catkin_LIBRARIES} ${GTEST_LIBRARIES})
project(test_tf2)

add_rostest(${CMAKE_CURRENT_SOURCE_DIR}/test/test_tf2_bullet.launch)
find_package(ament_cmake REQUIRED)
find_package(ament_cmake_gtest REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(launch_testing_ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(rclcpp_action REQUIRED)
find_package(tf2 REQUIRED)
# TODO (ahcorde): activate when tf2_bullet is merged
# find_package(tf2_bullet REQUIRED)
find_package(tf2_geometry_msgs REQUIRED)
find_package(tf2_kdl REQUIRED)

ament_find_gtest()

include_directories(${GTEST_INCLUDE_DIRS})

# TODO (ahcorde): activate when tf2_bullet is merged
# find_package(PkgConfig REQUIRED)
# pkg_check_modules(bullet REQUIRED bullet)
# include_directories(include ${bullet_INCLUDE_DIRS})

ament_add_gtest(buffer_core_test test/buffer_core_test.cpp)
if(TARGET buffer_core_test)
ament_target_dependencies(buffer_core_test
rclcpp
tf2
tf2_geometry_msgs
)
endif()

ament_add_gtest(test_message_filter test/test_message_filter.cpp)
if(TARGET test_message_filter)
ament_target_dependencies(test_message_filter
geometry_msgs
rclcpp
tf2
tf2_ros
)
endif()

if(TARGET tests)
add_dependencies(tests test_buffer_server test_buffer_client test_static_publisher test_tf2_bullet)
# TODO (ahcorde): activate when tf2_bullet is merged
# ament_add_gtest(test_convert test/test_convert.cpp)
# if(TARGET test_convert)
# ament_target_dependencies(test_convert
# tf2
# tf2_bullet
# )
# endif()

ament_add_gtest(test_utils test/test_utils.cpp)
if(TARGET test_utils)
ament_target_dependencies(test_utils
tf2
tf2_geometry_msgs
tf2_kdl
)
endif()

# TODO (ahcorde): activate when tf2_bullet is merged
# add_executable(test_buffer_server test/test_buffer_server.cpp)
# if(TARGET test_buffer_server)
# ament_target_dependencies(test_buffer_server
# rclcpp
# rclcpp_action
# tf2_bullet
# tf2_ros
# )
# endif()

# TODO (ahcorde): activate when tf2_bullet is merged
# add_executable(test_buffer_client test/test_buffer_client.cpp)
# if(TARGET test_buffer_client)
# ament_target_dependencies(test_buffer_client
# rclcpp
# rclcpp_action
# tf2_bullet
# tf2_kdl
# tf2_ros
# )
# target_link_libraries(test_buffer_client ${GTEST_LIBRARIES})
# add_launch_test(test/buffer_client_tester.launch.py)
# endif()

add_executable(test_static_publisher test/test_static_publisher.cpp)
if(TARGET test_static_publisher)
ament_target_dependencies(test_static_publisher
tf2_ros
rclcpp
rclcpp_action
)
target_link_libraries(test_static_publisher ${GTEST_LIBRARIES})
add_launch_test(test/static_publisher.launch.py)
endif()

# used as a test fixture
if(TARGET tf2_ros_static_transform_publisher)
add_dependencies(tests tf2_ros_static_transform_publisher test_static_publisher)
endif()
# TODO (ahcorde): activate when tf2_bullet is merged
# ament_add_gtest(test_tf2_bullet test/test_tf2_bullet.cpp)
# if(TARGET test_tf2_bullet)
# ament_target_dependencies(test_tf2_bullet
# rclcpp
# rclcpp_action
# tf2_bullet
# tf2_ros
# )
# endif()
#
# add_launch_test(test/test_buffer_client.launch.py)
# add_rostest(${CMAKE_CURRENT_SOURCE_DIR}/test/test_tf2_bullet.launch)

# install executables
install(TARGETS
# test_buffer_client
# test_buffer_server
test_static_publisher
DESTINATION lib/${PROJECT_NAME}
)
install(PROGRAMS
test/test_buffer_client.py
DESTINATION lib/${PROJECT_NAME}
)

ament_package()
46 changes: 18 additions & 28 deletions test_tf2/package.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<package>
<package format="2">
<name>test_tf2</name>
<version>0.9.1</version>
<version>0.12.4</version>
<description>
tf2 unit tests
</description>
Expand All @@ -10,34 +10,24 @@
<license>BSD</license>

<url type="website">http://www.ros.org/wiki/geometry_experimental</url>

<buildtool_depend version_gte="0.5.68">catkin</buildtool_depend>
ahcorde marked this conversation as resolved.
Show resolved Hide resolved

<build_depend>rosconsole</build_depend>
<build_depend>roscpp</build_depend>
<build_depend>rostest</build_depend>
<build_depend>tf</build_depend>
<build_depend>tf2</build_depend>
<build_depend>tf2_bullet</build_depend>
<build_depend>tf2_ros</build_depend>
<build_depend>tf2_geometry_msgs</build_depend>
<build_depend>tf2_kdl</build_depend>
<build_depend>tf2_msgs</build_depend>
<buildtool_depend>ament_cmake</buildtool_depend>

<run_depend>rosconsole</run_depend>
<run_depend>roscpp</run_depend>
<run_depend>rostest</run_depend>
<run_depend>tf</run_depend>
<run_depend>tf2</run_depend>
<run_depend>tf2_bullet</run_depend>
<run_depend>tf2_ros</run_depend>
<run_depend>tf2_geometry_msgs</run_depend>
<run_depend>tf2_kdl</run_depend>
<run_depend>tf2_msgs</run_depend>
<depend>geometry_msgs</depend>
<depend>rclcpp</depend>
<depend>rclcpp_action</depend>
<depend>rcpputils</depend>
<depend>rcutils</depend>
<depend>tf2</depend>
<depend>tf2_geometry_msgs</depend>
<depend>tf2_kdl</depend>
<depend>tf2_ros</depend>
<depend>launch_ros</depend>

<test_depend>rosunit</test_depend>
<test_depend>rosbash</test_depend>
<test_depend>ament_cmake_gtest</test_depend>
<test_depend>launch_testing_ament_cmake</test_depend>

<export>
<build_type>ament_cmake</build_type>
</export>
</package>


5 changes: 0 additions & 5 deletions test_tf2/test/buffer_client_tester.launch

This file was deleted.

54 changes: 54 additions & 0 deletions test_tf2/test/buffer_client_tester.launch.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# generated from buildfarm_perf_tests/test/test_performance.py.in
# generated code does not contain a copyright notice

import unittest

from launch import LaunchDescription
import launch
from launch_ros.actions import Node
import launch_testing
from launch.substitutions import LaunchConfiguration

def generate_test_description(ready_fn):
node_under_test = Node(
package='test_tf2',
node_executable='test_buffer_client',
output='screen',
arguments=[],
)
node_static_transform_publisher = Node(
package='tf2_ros',
node_executable='static_transform_publisher',
output='screen',
arguments=["5", "6", "7", "0", "0", "0", "1", "a", "b"]
)

node_buffer_server = Node(
package='test_tf2',
node_executable='test_buffer_server',
output='screen',
arguments=[],
sigterm_timeout=LaunchConfiguration('sigterm_timeout', default=2)
)
return LaunchDescription([
node_static_transform_publisher,
node_buffer_server,
node_under_test,
launch_testing.util.KeepAliveProc(),
launch.actions.OpaqueFunction(function=lambda context: ready_fn()),
]), locals()


class TestBufferClient(unittest.TestCase):

def test_termination(self, node_under_test, proc_info):
proc_info.assertWaitForShutdown(process=node_under_test, timeout=(10))


@launch_testing.post_shutdown_test()
class BufferClientTestAfterShutdown(unittest.TestCase):

def test_exit_code(self):
# Check that all processes in the launch (in this case, there's just one) exit
# with code 0
launch_testing.asserts.assertExitCodes(self.proc_info)
Loading