mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 13:20:47 -06:00
The function gtest_discover_tests calls the passed test executable with
the parameter --gtest_list_tests and parses the output to find all
tests.
In case of value-parameterized tests ([1]), the test values are included
in the output. While test names are alphanumeric, the values can contain
arbitrary content.
First, the output is separated into lines with `foreach`. Included
semi-colons breaks this and need to get escaped.
Afterwards, the testname is passed on to the `add_command` helper. This
helper was converted into a macro in commit dac201442d (GoogleTest:
Optimize gtest_discover_tests, 2020-02-18). As a macro, its arguments
are re-evaluated. Therefore we need to escape `\`, `;` and to prevent
unwanted variable expansion `$`.
Fixes: #20661
[1] <https://github.com/google/googletest/blob/0eea2e9/googletest/docs/advanced.md#value-parameterized-tests>
32 lines
1.5 KiB
Plaintext
32 lines
1.5 KiB
Plaintext
Test project .*
|
|
Start 1: TEST:basic\.case_foo!1
|
|
1/11 Test #1: TEST:basic\.case_foo!1 \.+ +Passed +[0-9.]+ sec
|
|
Start 2: TEST:basic\.case_bar!1
|
|
2/11 Test #2: TEST:basic\.case_bar!1 \.+ +Passed +[0-9.]+ sec
|
|
Start 3: TEST:basic\.disabled_case!1
|
|
3/11 Test #3: TEST:basic\.disabled_case!1 \.+\*+Not Run \(Disabled\) +[0-9.]+ sec
|
|
Start 4: TEST:disabled\.case!1
|
|
4/11 Test #4: TEST:disabled\.case!1 \.+\*+Not Run \(Disabled\) +[0-9.]+ sec
|
|
Start 5: TEST:typed/short\.case!1
|
|
5/11 Test #5: TEST:typed/short\.case!1 \.+ +Passed +[0-9.]+ sec
|
|
Start 6: TEST:typed/float\.case!1
|
|
6/11 Test #6: TEST:typed/float\.case!1 \.+ +Passed +[0-9.]+ sec
|
|
Start 7: TEST:value/test\.case/1!1
|
|
7/11 Test #7: TEST:value/test\.case/1!1 \.+ +Passed +[0-9.]+ sec
|
|
Start 8: TEST:value/test\.case/"foo"!1
|
|
8/11 Test #8: TEST:value/test\.case/"foo"!1 \.+ +Passed +[0-9.]+ sec
|
|
Start 9: TEST:param/special\.case/"semicolon;"!1
|
|
9/11 Test #9: TEST:param/special\.case/"semicolon;"!1 \.+ +Passed +[0-9.]+ sec
|
|
Start 10: TEST:param/special\.case/"backslash\\"!1
|
|
10/11 Test #10: TEST:param/special\.case/"backslash\\"!1 \.+ +Passed +[0-9.]+ sec
|
|
Start 11: TEST:param/special\.case/"\$\{var\}"!1
|
|
11/11 Test #11: TEST:param/special\.case/"\$\{var\}"!1 \.+ +Passed +[0-9.]+ sec
|
|
|
|
100% tests passed, 0 tests failed out of 9
|
|
|
|
Total Test time \(real\) = +[0-9.]+ sec
|
|
|
|
The following tests did not run:
|
|
.*3 - TEST:basic\.disabled_case!1 \(Disabled\)
|
|
.*4 - TEST:disabled\.case!1 \(Disabled\)
|