diff options
author | robot-ya-builder <robot-ya-builder@yandex-team.com> | 2023-01-17 13:48:00 +0300 |
---|---|---|
committer | robot-ya-builder <robot-ya-builder@yandex-team.com> | 2023-01-17 13:48:00 +0300 |
commit | 58a117b001b63f06104246f6a89c60128596b391 (patch) | |
tree | 7c545e74e01edfc7a6b67a04b4ef5b0eee77e08d /cmake | |
parent | 51674dac4bb91435ef6009fa104dfb835e158780 (diff) | |
download | ydb-58a117b001b63f06104246f6a89c60128596b391.tar.gz |
External build system generator release 8
Update tools: yexport
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/common.cmake | 45 | ||||
-rw-r--r-- | cmake/global_vars.cmake | 2 |
2 files changed, 46 insertions, 1 deletions
diff --git a/cmake/common.cmake b/cmake/common.cmake index aedd887a20..3b31911776 100644 --- a/cmake/common.cmake +++ b/cmake/common.cmake @@ -210,3 +210,48 @@ function(use_export_script Target ExportFile) LINK_DEPENDS ${OutPath} ) endfunction() + +function(add_yunittest) + set(opts "") + set(oneval_args NAME TEST_TARGET) + set(multival_args TEST_ARG) + cmake_parse_arguments(YUNITTEST_ARGS + "${opts}" + "${oneval_args}" + "${multival_args}" + ${ARGN} + ) + get_property(SPLIT_FACTOR TARGET ${YUNITTEST_ARGS_TEST_TARGET} PROPERTY SPLIT_FACTOR) + if (${SPLIT_FACTOR} EQUAL 1) + add_test(NAME ${YUNITTEST_ARGS_NAME} COMMAND ${YUNITTEST_ARGS_TARGET} ${YUNITTEST_ARGS_TEST_ARG}) + return() + endif() + + foreach(Idx RANGE ${SPLIT_FACTOR}) + add_test(NAME ${YUNITTEST_ARGS_NAME}_${Idx} + COMMAND Python3::Interpreter ${CMAKE_SOURCE_DIR}/build/scripts/split_unittest.py --split-factor ${SPLIT_FACTOR} --shard ${Idx} + $<TARGET_FILE:${YUNITTEST_ARGS_TEST_TARGET}> ${YUNITTEST_ARGS_TEST_ARG}) + endforeach() +endfunction() + +function(set_yunittest_property) + set(opts "") + set(oneval_args TEST PROPERTY) + set(multival_args ) + cmake_parse_arguments(YUNITTEST_ARGS + "${opts}" + "${oneval_args}" + "${multival_args}" + ${ARGN} + ) + get_property(SPLIT_FACTOR TARGET ${YUNITTEST_ARGS_TEST} PROPERTY SPLIT_FACTOR) + + if (${SPLIT_FACTOR} EQUAL 1) + set_property(TEST ${YUNITTEST_ARGS_TEST} PROPERTY ${YUNITTEST_ARGS_PROPERTY} ${YUNITTEST_ARGS_UNPARSED_ARGUMENTS}) + return() + endif() + + foreach(Idx RANGE ${SPLIT_FACTOR}) + set_property(TEST ${YUNITTEST_ARGS_TEST}_${Idx} PROPERTY ${YUNITTEST_ARGS_PROPERTY} ${YUNITTEST_ARGS_UNPARSED_ARGUMENTS}) + endforeach() +endfunction() diff --git a/cmake/global_vars.cmake b/cmake/global_vars.cmake index 311a9af8e9..6ba78b9749 100644 --- a/cmake/global_vars.cmake +++ b/cmake/global_vars.cmake @@ -1,5 +1,5 @@ -# This file was gererated by the build system used internally in the Yandex monorepo. +# This file was generated by the build system used internally in the Yandex monorepo. # Only simple modifications are allowed (adding source-files to targets, adding simple properties # like target_include_directories). These modifications will be ported to original # ya.make files by maintainers. Any complex modifications which can't be ported back to the |