summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
authorCraig Scott <craig.scott@crascit.com>2024-09-30 11:13:13 (GMT)
committerCraig Scott <craig.scott@crascit.com>2024-10-02 00:09:11 (GMT)
commitfc7aa3cd69eee1cdb001e6a28f36ddd01cefe720 (patch)
tree7e65266786f0db5d5ba66f9a95d58c756f408b09 /Help
parent9f1703530bae90704cd4a096c14cfec4ab1e7cec (diff)
downloadCMake-fc7aa3cd69eee1cdb001e6a28f36ddd01cefe720.zip
CMake-fc7aa3cd69eee1cdb001e6a28f36ddd01cefe720.tar.gz
CMake-fc7aa3cd69eee1cdb001e6a28f36ddd01cefe720.tar.bz2
tests: Preserve empty arguments in test command lines
This will now preserve empty values in the TEST_LAUNCHER and CROSSCOMPILING_EMULATOR target properties for tests added by: - The add_test() command. - The ExternalData_Add_Test() command from the ExternalData module. - The gtest_add_tests() or gtest_discover_tests() commands from the GoogleTest module. For the gtest_add_tests() and gtest_discover_tests() commands, empty elements in the values passed after the EXTRA_ARGS keyword are also now preserved. Policy CMP0178 is added to provide backward compatibility with the old behavior where empty values were silently discarded from the above cases. Fixes: #26337
Diffstat (limited to 'Help')
-rw-r--r--Help/manual/cmake-policies.7.rst1
-rw-r--r--Help/policy/CMP0178.rst37
-rw-r--r--Help/release/dev/preserve-empty-args-test-command-lines.rst19
3 files changed, 57 insertions, 0 deletions
diff --git a/Help/manual/cmake-policies.7.rst b/Help/manual/cmake-policies.7.rst
index 3b97848..796ce8b 100644
--- a/Help/manual/cmake-policies.7.rst
+++ b/Help/manual/cmake-policies.7.rst
@@ -57,6 +57,7 @@ Policies Introduced by CMake 3.31
.. toctree::
:maxdepth: 1
+ CMP0178: Test command lines preserve empty arguments. </policy/CMP0178>
CMP0177: install() DESTINATION paths are normalized. </policy/CMP0177>
CMP0176: execute_process() ENCODING is UTF-8 by default. </policy/CMP0176>
CMP0175: add_custom_command() rejects invalid arguments. </policy/CMP0175>
diff --git a/Help/policy/CMP0178.rst b/Help/policy/CMP0178.rst
new file mode 100644
index 0000000..f6152eb
--- /dev/null
+++ b/Help/policy/CMP0178.rst
@@ -0,0 +1,37 @@
+CMP0178
+-------
+
+.. versionadded:: 3.31
+
+Test command lines preserve empty arguments.
+
+Empty values in the :prop_tgt:`TEST_LAUNCHER` and
+:prop_tgt:`CROSSCOMPILING_EMULATOR` target properties are now preserved
+for tests added by the following:
+
+* The :command:`add_test` command.
+* The :command:`ExternalData_Add_Test` command from the :module:`ExternalData`
+ module.
+* The :command:`gtest_add_tests` or :command:`gtest_discover_tests` commands
+ from the :module:`GoogleTest` module.
+
+For the :command:`gtest_add_tests` and :command:`gtest_discover_tests`
+commands, empty elements in the values passed after the ``EXTRA_ARGS``
+keyword are also now preserved.
+
+The ``OLD`` behavior of this policy silently discards empty list items
+from the :prop_tgt:`TEST_LAUNCHER` and :prop_tgt:`CROSSCOMPILING_EMULATOR`
+target properties in the above-mentioned cases. It also silently discards
+empty items from the values given after ``EXTRA_ARGS`` for the
+:command:`gtest_add_tests` and :command:`gtest_discover_tests` commands.
+
+The ``NEW`` behavior of this policy preserves empty list items in the
+:prop_tgt:`TEST_LAUNCHER` and :prop_tgt:`CROSSCOMPILING_EMULATOR` target
+properties, and in values given after ``EXTRA_ARGS`` for
+:command:`gtest_add_tests` and :command:`gtest_discover_tests`.
+
+.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.31
+.. |WARNS_OR_DOES_NOT_WARN| replace:: warns
+.. include:: STANDARD_ADVICE.txt
+
+.. include:: DEPRECATED.txt
diff --git a/Help/release/dev/preserve-empty-args-test-command-lines.rst b/Help/release/dev/preserve-empty-args-test-command-lines.rst
new file mode 100644
index 0000000..a533ac8
--- /dev/null
+++ b/Help/release/dev/preserve-empty-args-test-command-lines.rst
@@ -0,0 +1,19 @@
+preserve-empty-args-test-command-lines
+--------------------------------------
+
+* Empty list elements in the :prop_tgt:`TEST_LAUNCHER` and
+ :prop_tgt:`CROSSCOMPILING_EMULATOR` target properties are now preserved
+ when the executable for a command given to :command:`add_test` is a CMake
+ target. See policy :policy:`CMP0178`.
+
+* Empty list elements in the :prop_tgt:`TEST_LAUNCHER` and
+ :prop_tgt:`CROSSCOMPILING_EMULATOR` target properties are now preserved
+ for the test created by :command:`ExternalData_Add_Test` from the
+ :module:`ExternalData` module. See policy :policy:`CMP0178`.
+
+* Empty list elements in the :prop_tgt:`TEST_LAUNCHER` and
+ :prop_tgt:`CROSSCOMPILING_EMULATOR` target properties are now preserved
+ for tests created by :command:`gtest_add_tests` and
+ :command:`gtest_discover_tests` from the :module:`GoogleTest` module.
+ Empty list elements after the ``EXTRA_ARGS`` keyword of these two commands
+ are also now preserved. See policy :policy:`CMP0178`.