|
1 | | -function(add_yunittest) |
2 | | - set(opts "") |
3 | | - set(oneval_args NAME TEST_TARGET WORKING_DIRECTORY) |
4 | | - set(multival_args TEST_ARG) |
5 | | - cmake_parse_arguments(YUNITTEST_ARGS |
6 | | - "${opts}" |
7 | | - "${oneval_args}" |
8 | | - "${multival_args}" |
9 | | - ${ARGN} |
10 | | - ) |
11 | | - |
12 | | - get_property(SPLIT_FACTOR TARGET ${YUNITTEST_ARGS_TEST_TARGET} PROPERTY SPLIT_FACTOR) |
13 | | - get_property(SPLIT_TYPE TARGET ${YUNITTEST_ARGS_TEST_TARGET} PROPERTY SPLIT_TYPE) |
14 | | - |
15 | | - if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/run_testpack") |
16 | | - add_test(NAME ${YUNITTEST_ARGS_NAME} |
17 | | - COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/run_testpack" ${YUNITTEST_ARGS_TEST_ARG} |
18 | | - WORKING_DIRECTORY ${YUNITTEST_ARGS_WORKING_DIRECTORY} |
19 | | - ) |
20 | | - set_property(TEST ${YUNITTEST_ARGS_NAME} PROPERTY ENVIRONMENT "source_root=${YDB_SDK_SOURCE_DIR};build_root=${YDB_SDK_BINARY_DIR};test_split_factor=${SPLIT_FACTOR};test_split_type=${SPLIT_TYPE}") |
21 | | - return() |
22 | | - endif() |
23 | | - |
24 | | - if (${SPLIT_FACTOR} EQUAL 1) |
25 | | - add_test(NAME ${YUNITTEST_ARGS_NAME} |
26 | | - COMMAND ${YUNITTEST_ARGS_TEST_TARGET} ${YUNITTEST_ARGS_TEST_ARG} |
27 | | - WORKING_DIRECTORY ${YUNITTEST_ARGS_WORKING_DIRECTORY} |
28 | | - ) |
29 | | - return() |
30 | | - endif() |
31 | | - |
32 | | - if ("${SPLIT_TYPE}") |
33 | | - set(FORK_MODE_ARG --fork-mode ${SPLIT_TYPE}) |
34 | | - endif() |
35 | | - math(EXPR LastIdx "${SPLIT_FACTOR} - 1") |
36 | | - foreach(Idx RANGE ${LastIdx}) |
37 | | - add_test(NAME ${YUNITTEST_ARGS_NAME}_${Idx} |
38 | | - COMMAND Python3::Interpreter ${YDB_SDK_SOURCE_DIR}/scripts/split_unittest.py |
39 | | - --split-factor ${SPLIT_FACTOR} ${FORK_MODE_ARG} |
40 | | - --shard ${Idx} |
41 | | - $<TARGET_FILE:${YUNITTEST_ARGS_TEST_TARGET}> ${YUNITTEST_ARGS_TEST_ARG} |
42 | | - WORKING_DIRECTORY ${YUNITTEST_ARGS_WORKING_DIRECTORY} |
43 | | - ) |
44 | | - endforeach() |
45 | | -endfunction() |
46 | | - |
47 | | -function(set_yunittest_property) |
48 | | - set(opts "") |
49 | | - set(oneval_args TEST PROPERTY) |
50 | | - set(multival_args ) |
51 | | - cmake_parse_arguments(YUNITTEST_ARGS |
52 | | - "${opts}" |
53 | | - "${oneval_args}" |
54 | | - "${multival_args}" |
55 | | - ${ARGN} |
56 | | - ) |
57 | | - get_property(SPLIT_FACTOR TARGET ${YUNITTEST_ARGS_TEST} PROPERTY SPLIT_FACTOR) |
| 1 | +enable_testing() |
58 | 2 |
|
59 | | - if ((${SPLIT_FACTOR} EQUAL 1) OR (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/run_testpack")) |
60 | | - set_property(TEST ${YUNITTEST_ARGS_TEST} PROPERTY ${YUNITTEST_ARGS_PROPERTY} ${YUNITTEST_ARGS_UNPARSED_ARGUMENTS}) |
61 | | - return() |
62 | | - endif() |
63 | | - |
64 | | - math(EXPR LastIdx "${SPLIT_FACTOR} - 1") |
65 | | - foreach(Idx RANGE ${LastIdx}) |
66 | | - set_property(TEST ${YUNITTEST_ARGS_TEST}_${Idx} PROPERTY ${YUNITTEST_ARGS_PROPERTY} ${YUNITTEST_ARGS_UNPARSED_ARGUMENTS}) |
67 | | - endforeach() |
68 | | -endfunction() |
| 3 | +find_package(GTest REQUIRED) |
| 4 | +include(GoogleTest) |
69 | 5 |
|
70 | 6 | function(add_ydb_test) |
71 | 7 | set(opts GTEST) |
@@ -112,72 +48,38 @@ function(add_ydb_test) |
112 | 48 | ) |
113 | 49 | endif() |
114 | 50 |
|
115 | | - set_property( |
116 | | - TARGET |
117 | | - ${YDB_TEST_NAME} |
118 | | - PROPERTY |
119 | | - SPLIT_FACTOR |
120 | | - 1 |
121 | | - ) |
122 | 51 | if (YDB_TEST_GTEST) |
123 | | - add_yunittest( |
124 | | - NAME |
125 | | - ${YDB_TEST_NAME} |
126 | | - TEST_TARGET |
127 | | - ${YDB_TEST_NAME} |
128 | | - TEST_ARG |
129 | | - ${YDB_TEST_TEST_ARG} |
130 | | - WORKING_DIRECTORY |
131 | | - ${YDB_TEST_WORKING_DIRECTORY} |
| 52 | + gtest_discover_tests(${YDB_TEST_NAME} |
| 53 | + EXTRA_ARGS ${YDB_TEST_TEST_ARG} |
| 54 | + WORKING_DIRECTORY ${YDB_TEST_WORKING_DIRECTORY} |
| 55 | + PROPERTIES LABELS ${YDB_TEST_LABELS} |
| 56 | + PROPERTIES PROCESSORS 1 |
| 57 | + PROPERTIES TIMEOUT 600 |
132 | 58 | ) |
| 59 | + |
133 | 60 | target_link_libraries(${YDB_TEST_NAME} PRIVATE |
134 | 61 | GTest::gtest_main |
135 | 62 | ) |
136 | 63 | else() |
137 | | - add_yunittest( |
138 | | - NAME |
139 | | - ${YDB_TEST_NAME} |
140 | | - TEST_TARGET |
141 | | - ${YDB_TEST_NAME} |
142 | | - TEST_ARG |
| 64 | + add_test(NAME ${YDB_TEST_NAME} |
| 65 | + WORKING_DIRECTORY ${YDB_TEST_WORKING_DIRECTORY} |
| 66 | + COMMAND ${YDB_TEST_NAME} |
143 | 67 | --print-before-suite |
144 | 68 | --print-before-test |
145 | 69 | --fork-tests |
146 | 70 | --print-times |
147 | 71 | --show-fails |
148 | 72 | ${YDB_TEST_TEST_ARG} |
149 | | - WORKING_DIRECTORY |
150 | | - ${YDB_TEST_WORKING_DIRECTORY} |
151 | 73 | ) |
| 74 | + |
152 | 75 | target_link_libraries(${YDB_TEST_NAME} PRIVATE |
153 | 76 | cpp-testing-unittest_main |
154 | 77 | ) |
155 | | - endif() |
156 | | - |
157 | | - set_yunittest_property( |
158 | | - TEST |
159 | | - ${YDB_TEST_NAME} |
160 | | - PROPERTY |
161 | | - LABELS |
162 | | - MEDIUM |
163 | | - ${YDB_TEST_LABELS} |
164 | | - ) |
165 | 78 |
|
166 | | - set_yunittest_property( |
167 | | - TEST |
168 | | - ${YDB_TEST_NAME} |
169 | | - PROPERTY |
170 | | - PROCESSORS |
171 | | - 1 |
172 | | - ) |
173 | | - |
174 | | - set_yunittest_property( |
175 | | - TEST |
176 | | - ${YDB_TEST_NAME} |
177 | | - PROPERTY |
178 | | - TIMEOUT |
179 | | - 600 |
180 | | - ) |
| 79 | + set_tests_properties(${YDB_TEST_NAME} PROPERTIES LABELS ${YDB_TEST_LABELS}) |
| 80 | + set_tests_properties(${YDB_TEST_NAME} PROPERTIES PROCESSORS 1) |
| 81 | + set_tests_properties(${YDB_TEST_NAME} PROPERTIES TIMEOUT 600) |
| 82 | + endif() |
181 | 83 |
|
182 | 84 | vcs_info(${YDB_TEST_NAME}) |
183 | 85 | endfunction() |
0 commit comments