@@ -25,11 +25,17 @@ include(GoogleTest)
2525option (INTEGRATION_TESTS "Build the integration tests that require a running robot / URSim" OFF )
2626option (POLYSCOPE_X_TESTS_WITH_REMOTE_CONTROL "Run Polyscope X tests that require remote control" OFF )
2727option (CHECK_RTDE_DOCS_RECIPE "Fetch the RTDE documentation to auto-generate a recipe containing all output fields and check that with the RTDE client. Requires python3 and pandas and an internet connection." OFF )
28+ set (INTEGRATION_TESTS_ROBOT_IP "" CACHE STRING "If set, override the default robot IP (192.168.56.101) compiled into each integration test main() by passing --robot_ip <ip> to every ctest-registered integration test." )
2829# Build Tests
2930if (INTEGRATION_TESTS)
30- # Integration tests require a robot reachable at 192.168.56.101. Therefore, they have to be
31- # activated separately.
32-
31+ # Integration tests require a reachable robot / URSim. The compiled-in default
32+ # address is 192.168.56.101; configure with -DINTEGRATION_TESTS_ROBOT_IP=<ip>
33+ # to override (e.g. 127.0.0.1 for a host-networked URSim).
34+ set (INTEGRATION_TESTS_ROBOT_IP_ARG "" )
35+ if (INTEGRATION_TESTS_ROBOT_IP)
36+ set (INTEGRATION_TESTS_ROBOT_IP_ARG --robot_ip ${INTEGRATION_TESTS_ROBOT_IP} )
37+ endif ()
38+
3339 if (POLYSCOPE_X_TESTS_WITH_REMOTE_CONTROL)
3440 add_compile_definitions (POLYSCOPE_X_TESTS_WITH_REMOTE_CONTROL=1 )
3541 endif ()
@@ -38,6 +44,7 @@ if (INTEGRATION_TESTS)
3844 target_link_libraries (rtde_tests PRIVATE ur_client_library::urcl GTest::gtest_main )
3945 gtest_add_tests (TARGET rtde_tests
4046 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR }
47+ EXTRA_ARGS ${INTEGRATION_TESTS_ROBOT_IP_ARG}
4148 )
4249 if (CHECK_RTDE_DOCS_RECIPE)
4350 find_package (Python3 COMPONENTS Interpreter REQUIRED )
@@ -49,27 +56,29 @@ if (INTEGRATION_TESTS)
4956 add_executable (dashboard_client_g5_tests test_dashboard_client_g5.cpp )
5057 target_link_libraries (dashboard_client_g5_tests PRIVATE ur_client_library::urcl GTest::gtest_main )
5158 gtest_add_tests (TARGET dashboard_client_g5_tests
59+ EXTRA_ARGS ${INTEGRATION_TESTS_ROBOT_IP_ARG}
5260 )
5361
5462 add_executable (dashboard_client_x_tests test_dashboard_client_x.cpp )
5563 target_link_libraries (dashboard_client_x_tests PRIVATE ur_client_library::urcl GTest::gtest_main )
5664 gtest_add_tests (TARGET dashboard_client_x_tests
5765 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR }
66+ EXTRA_ARGS ${INTEGRATION_TESTS_ROBOT_IP_ARG}
5867 )
5968
6069 # Spline tests
6170 add_executable (spline_tests_urcap test_spline_interpolation.cpp )
6271 target_link_libraries (spline_tests_urcap PRIVATE ur_client_library::urcl GTest::gtest_main )
6372 gtest_add_tests (TARGET spline_tests_urcap
6473 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR }
65- EXTRA_ARGS --headless false
74+ EXTRA_ARGS --headless false ${INTEGRATION_TESTS_ROBOT_IP_ARG}
6675 TEST_SUFFIX _urcap
6776 )
6877 add_executable (spline_tests_headless test_spline_interpolation.cpp )
6978 target_link_libraries (spline_tests_headless PRIVATE ur_client_library::urcl GTest::gtest_main )
7079 gtest_add_tests (TARGET spline_tests_headless
7180 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR }
72- EXTRA_ARGS --headless true
81+ EXTRA_ARGS --headless true ${INTEGRATION_TESTS_ROBOT_IP_ARG}
7382 TEST_SUFFIX _headless
7483 )
7584
@@ -78,14 +87,14 @@ if (INTEGRATION_TESTS)
7887 target_link_libraries (ur_driver_tests_urcap PRIVATE ur_client_library::urcl GTest::gtest_main )
7988 gtest_add_tests (TARGET ur_driver_tests_urcap
8089 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR }
81- EXTRA_ARGS --headless false
90+ EXTRA_ARGS --headless false ${INTEGRATION_TESTS_ROBOT_IP_ARG}
8291 TEST_SUFFIX _urcap
8392 )
8493 add_executable (ur_driver_tests_headless test_ur_driver.cpp )
8594 target_link_libraries (ur_driver_tests_headless PRIVATE ur_client_library::urcl GTest::gtest_main )
8695 gtest_add_tests (TARGET ur_driver_tests_headless
8796 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR }
88- EXTRA_ARGS --headless true
97+ EXTRA_ARGS --headless true ${INTEGRATION_TESTS_ROBOT_IP_ARG}
8998 TEST_SUFFIX _headless
9099 )
91100
@@ -94,14 +103,14 @@ if (INTEGRATION_TESTS)
94103 target_link_libraries (external_control_program_tests_urcap PRIVATE ur_client_library::urcl GTest::gtest_main )
95104 gtest_add_tests (TARGET external_control_program_tests_urcap
96105 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR }
97- EXTRA_ARGS --headless false
106+ EXTRA_ARGS --headless false ${INTEGRATION_TESTS_ROBOT_IP_ARG}
98107 TEST_SUFFIX _urcap
99108 )
100109 add_executable (external_control_program_tests_headless test_external_control_program.cpp )
101110 target_link_libraries (external_control_program_tests_headless PRIVATE ur_client_library::urcl GTest::gtest_main )
102111 gtest_add_tests (TARGET external_control_program_tests_headless
103112 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR }
104- EXTRA_ARGS --headless true
113+ EXTRA_ARGS --headless true ${INTEGRATION_TESTS_ROBOT_IP_ARG}
105114 TEST_SUFFIX _headless
106115 )
107116
@@ -110,27 +119,29 @@ if (INTEGRATION_TESTS)
110119 target_link_libraries (instruction_executor_test_urcap PRIVATE ur_client_library::urcl GTest::gtest_main )
111120 gtest_add_tests (TARGET instruction_executor_test_urcap
112121 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR }
113- EXTRA_ARGS --headless false
122+ EXTRA_ARGS --headless false ${INTEGRATION_TESTS_ROBOT_IP_ARG}
114123 TEST_SUFFIX _urcap
115124 )
116125 add_executable (instruction_executor_test_headless test_instruction_executor.cpp )
117126 target_link_libraries (instruction_executor_test_headless PRIVATE ur_client_library::urcl GTest::gtest_main )
118127 gtest_add_tests (TARGET instruction_executor_test_headless
119128 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR }
120- EXTRA_ARGS --headless true
129+ EXTRA_ARGS --headless true ${INTEGRATION_TESTS_ROBOT_IP_ARG}
121130 TEST_SUFFIX _headless
122131 )
123132
124133 add_executable (primary_client_test_headless test_primary_client.cpp fake_primary_server.cpp )
125134 target_link_libraries (primary_client_test_headless PRIVATE ur_client_library::urcl GTest::gtest_main )
126135 gtest_add_tests (TARGET primary_client_test_headless
127136 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR }
137+ EXTRA_ARGS ${INTEGRATION_TESTS_ROBOT_IP_ARG}
128138 )
129139
130140 add_executable (ur_driver_deprecated_constructor_test test_deprecated_ur_driver_construction.cpp )
131141 target_link_libraries (ur_driver_deprecated_constructor_test PRIVATE ur_client_library::urcl GTest::gtest_main )
132142 gtest_add_tests (TARGET ur_driver_deprecated_constructor_test
133143 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR }
144+ EXTRA_ARGS ${INTEGRATION_TESTS_ROBOT_IP_ARG}
134145 )
135146else ()
136147 message (STATUS "Skipping integration tests." )
0 commit comments