Skip to content

Commit 4d71b2b

Browse files
committed
unit tests should work now
1 parent 26db976 commit 4d71b2b

File tree

16 files changed

+251
-40
lines changed

16 files changed

+251
-40
lines changed

.travis.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ script:
8181
- source /opt/ros/$ROS_DISTRO/setup.bash
8282
- cd ~/catkin_ws
8383
- catkin clean --all
84-
- catkin build -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-w"
84+
- catkin config --blacklist ct_doc
85+
- catkin build -DBUILD_TESTS=true -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-w"
8586
# Run the tests, ensuring the path is set correctly.
8687
# we do not want to run the kindr tests
8788
- catkin config --blacklist kindr

ct_core/doc/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ if(DOXYGEN_FOUND)
1515
COMMAND ${CMAKE_COMMAND} -E echo_append "API Documentation built in ${CMAKE_CURRENT_SOURCE_DIR}"
1616
VERBATIM)
1717

18+
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/html DESTINATION share/ct_core/doc)
1819
endif()

ct_core/test/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ macro(package_add_test TESTNAME)
55
target_link_libraries(${TESTNAME} gtest gtest_main ct_core)
66
add_test(NAME ${TESTNAME} COMMAND ${TESTNAME})
77
set_target_properties(${TESTNAME} PROPERTIES FOLDER test)
8+
list(APPEND UNIT_TEST_TARGETS ${TESTNAME})
89
endmacro()
910

1011

@@ -30,3 +31,12 @@ if(USE_PRESPEC)
3031
package_add_test(IntegrationTestPrespec integration/IntegrationTestPrespec.cpp)
3132
package_add_test(IntegratorComparisonPrespec integration/IntegratorComparisonPrespec.cpp)
3233
endif(USE_PRESPEC)
34+
35+
36+
# Run all unit tests post-build.
37+
add_custom_target(run_tests ALL DEPENDS ${UNIT_TEST_TARGETS})
38+
add_custom_command(TARGET run_tests
39+
COMMENT "Running tests"
40+
POST_BUILD COMMAND ${PROJECT_SOURCE_DIR}/test/run_tests.py ${CMAKE_CURRENT_BINARY_DIR} ${UNIT_TEST_TARGETS}
41+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
42+
)

ct_core/test/run_tests.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/usr/bin/env python
2+
3+
from __future__ import print_function
4+
5+
import os
6+
import sys
7+
import subprocess
8+
9+
def main(argv=sys.argv[1:]):
10+
working_dir = argv[0]
11+
tests = argv[1:]
12+
print("Working directory: {}".format(working_dir))
13+
print("Running tests: ", tests)
14+
15+
test_dir = working_dir + "/test_results"
16+
if not os.path.exists(test_dir):
17+
os.makedirs(test_dir)
18+
19+
for the_file in os.listdir(test_dir):
20+
file_path = os.path.join(test_dir, the_file)
21+
try:
22+
if os.path.isfile(file_path):
23+
os.unlink(file_path)
24+
except Exception, e:
25+
print(e)
26+
27+
commands = []
28+
29+
for cmd in tests:
30+
test_cmd = "./" + cmd + " --gtest_output=xml:" + working_dir + "/test_results/"
31+
print("Running: ", test_cmd)
32+
rc = subprocess.call(test_cmd, cwd=working_dir, shell=True)
33+
34+
commands.insert(0, test_cmd)
35+
36+
print("Ran the following commands: ")
37+
for cmd in commands:
38+
print("-- ", cmd)
39+
40+
if __name__ == '__main__':
41+
sys.exit(main())

ct_doc/CMakeLists.txt

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1-
cmake_minimum_required (VERSION 2.6)
1+
cmake_minimum_required (VERSION 3.3)
22

3-
project (ct_doc)
3+
project (ct_doc VERSION 3.0.0 )
44

5-
find_package(catkin REQUIRED)
5+
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
66

7-
catkin_package(
8-
CATKIN_DEPENDS ct_core ct_optcon ct_rbd ct_models
9-
)
7+
8+
## find and include required dependencies
9+
find_package(ct_core REQUIRED)
10+
find_package(ct_optcon REQUIRED)
11+
find_package(ct_rbd REQUIRED)
12+
find_package(ct_models REQUIRED)
1013

1114
find_package(Doxygen)
1215
if(DOXYGEN_FOUND)
@@ -23,16 +26,11 @@ if(DOXYGEN_FOUND)
2326
COMMAND ${CMAKE_COMMAND} -E echo_append "API Documentation built in ${CMAKE_CURRENT_SOURCE_DIR}/doc"
2427
# COMMAND sensible-browser ${CMAKE_CURRENT_SOURCE_DIR}/doc/html/index.html
2528
VERBATIM)
29+
30+
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc/html DESTINATION share/ct_doc/doc)
2631
endif()
2732

2833

2934
add_custom_target(clang-format
3035
COMMAND ${CMAKE_COMMAND} -E echo_append ""
31-
VERBATIM)
32-
33-
add_custom_target(clang-tidy
34-
COMMAND ${CMAKE_COMMAND} -E echo_append ""
35-
VERBATIM)
36-
37-
38-
36+
VERBATIM)

ct_doc/doc/tags/.gitkeep

Whitespace-only changes.

ct_doc/package.xml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
1-
<package>
1+
<package format="2">
22
<name>ct_doc</name>
3-
<version>0.3.0</version>
3+
<version>3.0.0</version>
44
<description>
5-
ADRL control toolbox - Documentation
5+
Control toolbox - Documentation
66
</description>
7-
8-
<maintainer email="neunertm@gmail.com">Michael Neunert</maintainer>
9-
<maintainer email="mgiftthaler@ethz.ch">Markus Giftthaler</maintainer>
10-
7+
8+
<maintainer email="markusgft@gmail.com">Markus Giftthaler</maintainer>
9+
1110
<license>BSD-2</license>
12-
13-
<buildtool_depend>catkin</buildtool_depend>
14-
15-
<build_depend>ct_core</build_depend>
16-
<build_depend>ct_optcon</build_depend>
17-
<build_depend>ct_rbd</build_depend>
18-
<build_depend>ct_models</build_depend>
19-
20-
<run_depend>ct_core</run_depend>
21-
<run_depend>ct_optcon</run_depend>
22-
<run_depend>ct_rbd</run_depend>
23-
<run_depend>ct_models</run_depend>
24-
11+
12+
<buildtool_depend>cmake</buildtool_depend>
13+
14+
<depend>ct_core</depend>
15+
<depend>ct_optcon</depend>
16+
<depend>ct_rbd</depend>
17+
<depend>ct_models</depend>
18+
19+
<exec_depend>catkin</exec_depend> <!-- ROS compatibility-->
20+
21+
<export> <!-- Specify that this is not a ROS package-->
22+
<build_type>cmake</build_type>
23+
</export>
24+
2525
</package>

ct_models/doc/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,6 @@ if(DOXYGEN_FOUND)
1111
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
1212
COMMAND ${CMAKE_COMMAND} -E echo_append "API Documentation built in ${CMAKE_CURRENT_SOURCE_DIR}"
1313
VERBATIM)
14+
15+
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/html DESTINATION share/ct_models/doc)
1416
endif()

ct_models/test/CMakeLists.txt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ macro(package_add_test TESTNAME)
22
add_executable(${TESTNAME} ${ARGN})
33
add_test(NAME ${TESTNAME} COMMAND ${TESTNAME})
44
set_target_properties(${TESTNAME} PROPERTIES FOLDER test)
5+
list(APPEND UNIT_TEST_TARGETS ${TESTNAME})
56
endmacro()
67

78

@@ -19,4 +20,13 @@ target_link_libraries(ikfast_test_irb gtest gtest_main irb4600_ik ct_rbd)
1920

2021
package_add_test(ikfast_test_hya IKFast/IKFastTestHyA.cpp)
2122
target_include_directories(ikfast_test_hya PUBLIC ${ct_models_target_include_dirs})
22-
target_link_libraries(ikfast_test_hya gtest gtest_main hya_ik ct_rbd)
23+
target_link_libraries(ikfast_test_hya gtest gtest_main hya_ik ct_rbd)
24+
25+
26+
# Run all unit tests post-build.
27+
add_custom_target(run_tests ALL DEPENDS ${UNIT_TEST_TARGETS})
28+
add_custom_command(TARGET run_tests
29+
COMMENT "Running tests"
30+
POST_BUILD COMMAND ${PROJECT_SOURCE_DIR}/test/run_tests.py ${CMAKE_CURRENT_BINARY_DIR} ${UNIT_TEST_TARGETS}
31+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
32+
)

ct_models/test/run_tests.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/usr/bin/env python
2+
3+
from __future__ import print_function
4+
5+
import os
6+
import sys
7+
import subprocess
8+
9+
def main(argv=sys.argv[1:]):
10+
working_dir = argv[0]
11+
tests = argv[1:]
12+
print("Working directory: {}".format(working_dir))
13+
print("Running tests: ", tests)
14+
15+
test_dir = working_dir + "/test_results"
16+
if not os.path.exists(test_dir):
17+
os.makedirs(test_dir)
18+
19+
for the_file in os.listdir(test_dir):
20+
file_path = os.path.join(test_dir, the_file)
21+
try:
22+
if os.path.isfile(file_path):
23+
os.unlink(file_path)
24+
except Exception, e:
25+
print(e)
26+
27+
commands = []
28+
29+
for cmd in tests:
30+
test_cmd = "./" + cmd + " --gtest_output=xml:" + working_dir + "/test_results/"
31+
print("Running: ", test_cmd)
32+
rc = subprocess.call(test_cmd, cwd=working_dir, shell=True)
33+
34+
commands.insert(0, test_cmd)
35+
36+
print("Ran the following commands: ")
37+
for cmd in commands:
38+
print("-- ", cmd)
39+
40+
if __name__ == '__main__':
41+
sys.exit(main())

0 commit comments

Comments
 (0)