[libc-commits] [PATCH] D149691: [libc] Add 'UNIT_TEST_ONLY' and 'HERMETIC_TEST_ONLY' to 'add_libc_test'
Joseph Huber via Phabricator via libc-commits
libc-commits at lists.llvm.org
Tue May 2 13:57:34 PDT 2023
jhuber6 created this revision.
jhuber6 added reviewers: lntue, sivachandra, michaelrj.
Herald added subscribers: libc-commits, ecnelises, tschuett.
Herald added projects: libc-project, All.
jhuber6 requested review of this revision.
The `add_libc_test` option allows us to enable both kinds of tests in a
single option. However, some tests cannot be made hermetic with the
current approach. Such as tests that rely on system utilities or
libraries. This patch adds two options `UNIT_TEST_ONLY` and
`HERMETIC_TEST_ONLY` to offer more fine-grained control over which
version gets built. This makes it explicit which version a test supports
and why.
Depends on D149662 <https://reviews.llvm.org/D149662>
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D149691
Files:
libc/cmake/modules/LLVMLibCTestRules.cmake
libc/test/src/string/memory_utils/CMakeLists.txt
Index: libc/test/src/string/memory_utils/CMakeLists.txt
===================================================================
--- libc/test/src/string/memory_utils/CMakeLists.txt
+++ libc/test/src/string/memory_utils/CMakeLists.txt
@@ -1,5 +1,5 @@
-# This test uses too much memory to be made hermetic.
-add_libc_unittest(
+# This test currently uses too much memory to be made hermetic.
+add_libc_test(
utils_test
SUITE
libc-string-tests
@@ -15,4 +15,5 @@
libc.src.__support.CPP.span
libc.src.__support.macros.sanitizer
libc.src.string.memory_utils.memory_utils
+ UNIT_TEST_ONLY
)
Index: libc/cmake/modules/LLVMLibCTestRules.cmake
===================================================================
--- libc/cmake/modules/LLVMLibCTestRules.cmake
+++ libc/cmake/modules/LLVMLibCTestRules.cmake
@@ -693,10 +693,17 @@
# A convenience function to add both a unit test as well as a hermetic test.
function(add_libc_test test_name)
- if(LIBC_ENABLE_UNITTESTS)
- add_libc_unittest(${test_name}.__unit__ ${ARGN})
+ cmake_parse_arguments(
+ "LIBC_TEST"
+ "UNIT_TEST_ONLY;HERMETIC_TEST_ONLY" # Optional arguments
+ "" # Single value arguments
+ "" # Multi-value arguments
+ ${ARGN}
+ )
+ if(LIBC_ENABLE_UNITTESTS AND NOT LIBC_TEST_HERMETIC_TEST_ONLY)
+ add_libc_unittest(${test_name}.__unit__ ${LIBC_TEST_UNPARSED_ARGUMENTS})
endif()
- if(LIBC_ENABLE_HERMETIC_TESTS)
- add_libc_hermetic_test(${test_name}.__hermetic__ ${ARGN})
+ if(LIBC_ENABLE_HERMETIC_TESTS AND NOT LIBC_TEST_UNIT_TEST_ONLY)
+ add_libc_hermetic_test(${test_name}.__hermetic__ ${LIBC_TEST_UNPARSED_ARGUMENTS})
endif()
endfunction(add_libc_test)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D149691.518857.patch
Type: text/x-patch
Size: 1673 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libc-commits/attachments/20230502/a5ba89fb/attachment.bin>
More information about the libc-commits
mailing list