Skip to content

Commit 8a62355

Browse files
authored
[tests] Enable running integration tests against a custom robot IP (#531)
1 parent 0b3d1e3 commit 8a62355

9 files changed

Lines changed: 34 additions & 23 deletions

tests/CMakeLists.txt

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,17 @@ include(GoogleTest)
2525
option(INTEGRATION_TESTS "Build the integration tests that require a running robot / URSim" OFF)
2626
option(POLYSCOPE_X_TESTS_WITH_REMOTE_CONTROL "Run Polyscope X tests that require remote control" OFF)
2727
option(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
2930
if (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
)
135146
else()
136147
message(STATUS "Skipping integration tests.")

tests/test_dashboard_client_g5.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -667,7 +667,7 @@ int main(int argc, char* argv[])
667667
if (std::string(argv[i]) == "--robot_ip" && i + 1 < argc)
668668
{
669669
g_ROBOT_IP = argv[i + 1];
670-
break;
670+
++i;
671671
}
672672
}
673673

tests/test_dashboard_client_x.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,7 @@ int main(int argc, char* argv[])
516516
if (std::string(argv[i]) == "--robot_ip" && i + 1 < argc)
517517
{
518518
g_ROBOT_IP = argv[i + 1];
519-
break;
519+
++i;
520520
}
521521
}
522522

tests/test_deprecated_ur_driver_construction.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,13 +122,13 @@ int main(int argc, char* argv[])
122122
if (std::string(argv[i]) == "--robot_ip" && i + 1 < argc)
123123
{
124124
g_ROBOT_IP = argv[i + 1];
125-
break;
125+
++i;
126126
}
127127
if (std::string(argv[i]) == "--headless" && i + 1 < argc)
128128
{
129129
std::string headless = argv[i + 1];
130130
g_HEADLESS = headless == "true" || headless == "1" || headless == "True" || headless == "TRUE";
131-
break;
131+
++i;
132132
}
133133
}
134134

tests/test_instruction_executor.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -580,13 +580,13 @@ int main(int argc, char* argv[])
580580
if (std::string(argv[i]) == "--robot_ip" && i + 1 < argc)
581581
{
582582
g_ROBOT_IP = argv[i + 1];
583-
break;
583+
++i;
584584
}
585585
if (std::string(argv[i]) == "--headless" && i + 1 < argc)
586586
{
587587
std::string headless = argv[i + 1];
588588
g_HEADLESS = headless == "true" || headless == "1" || headless == "True" || headless == "TRUE";
589-
break;
589+
++i;
590590
}
591591
}
592592

tests/test_primary_client.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,7 @@ int main(int argc, char* argv[])
763763
if (std::string(argv[i]) == "--robot_ip" && i + 1 < argc)
764764
{
765765
g_ROBOT_IP = argv[i + 1];
766-
break;
766+
++i;
767767
}
768768
}
769769

tests/test_rtde_client.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -821,7 +821,7 @@ int main(int argc, char* argv[])
821821
if (std::string(argv[i]) == "--robot_ip" && i + 1 < argc)
822822
{
823823
g_ROBOT_IP = argv[i + 1];
824-
break;
824+
++i;
825825
}
826826
}
827827

tests/test_spline_interpolation.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1232,13 +1232,13 @@ int main(int argc, char* argv[])
12321232
if (std::string(argv[i]) == "--robot_ip" && i + 1 < argc)
12331233
{
12341234
g_ROBOT_IP = argv[i + 1];
1235-
break;
1235+
++i;
12361236
}
12371237
if (std::string(argv[i]) == "--headless" && i + 1 < argc)
12381238
{
12391239
std::string headless = argv[i + 1];
12401240
g_HEADLESS = headless == "true" || headless == "1" || headless == "True" || headless == "TRUE";
1241-
break;
1241+
++i;
12421242
}
12431243
}
12441244

tests/test_ur_driver.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -503,13 +503,13 @@ int main(int argc, char* argv[])
503503
if (std::string(argv[i]) == "--robot_ip" && i + 1 < argc)
504504
{
505505
g_ROBOT_IP = argv[i + 1];
506-
break;
506+
++i;
507507
}
508508
if (std::string(argv[i]) == "--headless" && i + 1 < argc)
509509
{
510510
std::string headless = argv[i + 1];
511511
g_HEADLESS = headless == "true" || headless == "1" || headless == "True" || headless == "TRUE";
512-
break;
512+
++i;
513513
}
514514
}
515515

0 commit comments

Comments
 (0)