@@ -6,37 +6,40 @@ if(USE_CUDA)
6
6
endif ()
7
7
8
8
function (c10d_add_test test_src)
9
+ set (prefix ARG)
10
+ set (noValues)
11
+ set (singleValues INSTALL_TEST)
12
+ set (multiValues LINK_LIBRARIES )
13
+
14
+ include (CMakeParseArguments)
15
+ cmake_parse_arguments (${prefix} "${noValues} " "${singleValues} " "${multiValues} " ${ARGN} )
16
+
9
17
get_filename_component (test_name ${test_src} NAME_WE )
10
18
add_executable (${test_name} "${test_src} " )
11
19
target_include_directories (${test_name} PRIVATE $<BUILD_INTERFACE:${TORCH_SRC_DIR} /csrc/distributed>)
12
- target_link_libraries (${test_name} ${ARGN } )
20
+ target_link_libraries (${test_name} ${ARG_LINK_LIBRARIES } )
13
21
if (NOT WIN32 )
14
22
target_link_libraries (${test_name} pthread)
15
23
endif ()
16
24
add_test (NAME ${test_name} COMMAND $<TARGET_FILE:${test_name} >)
25
+
26
+ if (ARG_INSTALL_TEST)
27
+ set_target_properties (${test_name} PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_RPATH} :${_rpath_portable_origin} /../lib" )
28
+ install (TARGETS ${test_name} DESTINATION bin)
29
+ endif ()
17
30
endfunction ()
18
31
19
- c10d_add_test(BackoffTest.cpp torch_cpu gtest_main)
20
- c10d_add_test(FileStoreTest.cpp torch_cpu gtest_main)
21
- c10d_add_test(TCPStoreTest.cpp torch_cpu gtest_main)
22
- if (INSTALL_TEST)
23
- install (TARGETS FileStoreTest DESTINATION bin)
24
- install (TARGETS TCPStoreTest DESTINATION bin)
25
- endif ()
32
+ c10d_add_test(BackoffTest.cpp LINK_LIBRARIES torch_cpu gtest_main INSTALL_TEST OFF )
33
+ c10d_add_test(FileStoreTest.cpp LINK_LIBRARIES torch_cpu gtest_main INSTALL_TEST ${INSTALL_TEST} )
34
+ c10d_add_test(TCPStoreTest.cpp LINK_LIBRARIES torch_cpu gtest_main INSTALL_TEST ${INSTALL_TEST} )
26
35
if (NOT WIN32 )
27
- c10d_add_test(HashStoreTest.cpp torch_cpu gtest_main)
28
- if (INSTALL_TEST)
29
- install (TARGETS HashStoreTest DESTINATION bin)
30
- endif ()
36
+ c10d_add_test(HashStoreTest.cpp LINK_LIBRARIES torch_cpu gtest_main INSTALL_TEST ${INSTALL_TEST} )
31
37
endif ()
32
38
33
39
if (USE_CUDA)
34
40
if (USE_GLOO AND USE_C10D_GLOO)
35
- c10d_add_test(ProcessGroupGlooTest.cpp torch_cpu c10d_cuda_test gtest_main)
36
- if (INSTALL_TEST)
37
- install (TARGETS ProcessGroupGlooTest DESTINATION bin)
38
- endif ()
39
- c10d_add_test(ProcessGroupGlooAsyncTest.cpp torch_cpu c10d_cuda_test gtest_main)
41
+ c10d_add_test(ProcessGroupGlooTest.cpp LINK_LIBRARIES torch_cpu c10d_cuda_test gtest_main INSTALL_TEST ${INSTALL_TEST} )
42
+ c10d_add_test(ProcessGroupGlooAsyncTest.cpp LINK_LIBRARIES torch_cpu c10d_cuda_test gtest_main INSTALL_TEST ${INSTALL_TEST} )
40
43
endif ()
41
44
if (USE_NCCL AND USE_C10D_NCCL)
42
45
# NCCL is a private dependency of libtorch, but the tests include some
@@ -45,13 +48,11 @@ if(USE_CUDA)
45
48
# a private dependency of the tests as well.
46
49
c10d_add_test(
47
50
ProcessGroupNCCLTest.cpp
48
- torch_cpu c10d_cuda_test gtest_main __caffe2_nccl)
51
+ LINK_LIBRARIES torch_cpu c10d_cuda_test gtest_main __caffe2_nccl INSTALL_TEST ${INSTALL_TEST} )
49
52
c10d_add_test(
50
53
ProcessGroupNCCLErrorsTest.cpp
51
- torch_cpu c10d_cuda_test gtest_main __caffe2_nccl)
54
+ LINK_LIBRARIES torch_cpu c10d_cuda_test gtest_main __caffe2_nccl INSTALL_TEST ${INSTALL_TEST} )
52
55
if (INSTALL_TEST)
53
- install (TARGETS ProcessGroupNCCLTest DESTINATION bin)
54
- install (TARGETS ProcessGroupNCCLErrorsTest DESTINATION bin)
55
56
install (TARGETS c10d_cuda_test DESTINATION lib)
56
57
endif ()
57
58
endif ()
@@ -62,15 +63,14 @@ if(USE_CUDA)
62
63
# a private dependency of the tests as well.
63
64
c10d_add_test(
64
65
ProcessGroupUCCTest.cpp
65
- torch_cpu c10d_cuda_test gtest_main __caffe2_ucc)
66
+ LINK_LIBRARIES torch_cpu c10d_cuda_test gtest_main __caffe2_ucc INSTALL_TEST ${INSTALL_TEST} )
66
67
if (INSTALL_TEST)
67
- install (TARGETS ProcessGroupUCCTest DESTINATION bin)
68
68
install (TARGETS c10d_cuda_test DESTINATION lib)
69
69
endif ()
70
70
endif ()
71
71
else ()
72
72
if (USE_GLOO AND USE_C10D_GLOO)
73
- c10d_add_test(ProcessGroupGlooTest.cpp torch_cpu gtest_main)
73
+ c10d_add_test(ProcessGroupGlooTest.cpp LINK_LIBRARIES torch_cpu gtest_main INSTALL_TEST OFF )
74
74
endif ()
75
75
endif ()
76
76
@@ -80,10 +80,7 @@ if(USE_MPI AND USE_C10D_MPI)
80
80
# private headers of libtorch, which in turn include MPI. As a hacky
81
81
# alternative to making MPI a public dependency of libtorch, we make it
82
82
# a private dependency of the tests as well.
83
- c10d_add_test(ProcessGroupMPITest.cpp torch_cpu MPI::MPI_CXX)
84
- if (INSTALL_TEST)
85
- install (TARGETS ProcessGroupMPITest DESTINATION bin)
86
- endif ()
83
+ c10d_add_test(ProcessGroupMPITest.cpp LINK_LIBRARIES torch_cpu MPI::MPI_CXX INSTALL_TEST ${INSTALL_TEST} )
87
84
endif ()
88
85
89
86
if (LINUX AND USE_GLOO AND USE_C10D_GLOO)
0 commit comments