GoogleTest: Change format for typed tests

Before it would output a typed test as follows:
  Suit/Type.Case
And now it would be:
  Suit.Case<Type>

In case of NO_PRETTY_TYPES it would simply use the type number
instead of its text representation:
  Suit.Case<0>

The change is introduced to make sure CTest outputs tests in a
similar fashion which is "*Suit.Case*" and angle brackets "<>"
emphasize that we are dealing with a typed (template) kind.
This commit is contained in:
Evgeniy Shcherbina
2022-02-07 10:35:21 +03:00
committed by Brad King
parent f28f738bd2
commit 073dd1bd81
5 changed files with 52 additions and 45 deletions

View File

@@ -135,10 +135,17 @@ function(gtest_discover_tests_impl)
if(NOT line MATCHES "^ ")
# Module; remove trailing '.' to get just the name...
string(REGEX REPLACE "\\.( *#.*)?$" "" suite "${line}")
if(line MATCHES "#" AND NOT _NO_PRETTY_TYPES)
string(REGEX REPLACE "/[0-9]+\\.+ +#.*= +" "/" pretty_suite "${line}")
if(line MATCHES "#")
string(REGEX REPLACE "/.*" "" pretty_suite "${line}")
if(NOT _NO_PRETTY_TYPES)
string(REGEX REPLACE ".*/[0-9]+[ .#]+TypeParam = (.*)" "\\1" type_parameter "${line}")
else()
string(REGEX REPLACE ".*/([0-9]+)[ .#]+TypeParam = .*" "\\1" type_parameter "${line}")
endif()
set(test_name_template "@prefix@@pretty_suite@.@pretty_test@<@type_parameter@>@suffix@")
else()
set(pretty_suite "${suite}")
set(test_name_template "@prefix@@pretty_suite@.@pretty_test@@suffix@")
endif()
string(REGEX REPLACE "^DISABLED_" "" pretty_suite "${pretty_suite}")
else()
@@ -156,7 +163,7 @@ function(gtest_discover_tests_impl)
unset(TEST_XML_OUTPUT_PARAM)
endif()
set(testname "${prefix}${pretty_suite}.${pretty_test}${suffix}")
string(CONFIGURE "${test_name_template}" testname)
# sanitize test name for further processing downstream
# unescape []
if(open_sb)

View File

@@ -1,9 +1,9 @@
Test project .*/Tests/RunCMake/GoogleTest/GoogleTest-discovery-arg-change
Test #[0-9]+: typed/short\.case
Test #[0-9]+: typed/float\.case
Test #[0-9]+: typed/char\.case
Test #[0-9]+: ns\.typed/short\.case
Test #[0-9]+: ns\.typed/float\.case
Test #[0-9]+: ns\.typed/char\.case
Test #[0-9]+: typed\.case<short>
Test #[0-9]+: typed\.case<float>
Test #[0-9]+: typed\.case<char>
Test #[0-9]+: ns\.typed\.case<short>
Test #[0-9]+: ns\.typed\.case<float>
Test #[0-9]+: ns\.typed\.case<char>
Total Tests: [0-9]+

View File

@@ -19,18 +19,18 @@ Test project .*
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:disabled\.case!1 \.+\*+Not Run \(Disabled\) +[0-9.]+ sec
*Start +[0-9]+: TEST:DISABLEDnotreally\.case!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:DISABLEDnotreally\.case!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed/short\.case!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/short\.case!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed/float\.case!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/float\.case!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed/char\.case!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/char\.case!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed/short\.case!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/short\.case!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed/float\.case!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/float\.case!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed/char\.case!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/char\.case!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed\.case<short>!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<short>!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed\.case<float>!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<float>!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed\.case<char>!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<char>!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed\.case<short>!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<short>!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed\.case<float>!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<float>!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed\.case<char>!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<char>!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:value/test\.case/1!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:value/test\.case/1!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:value/test\.case/"foo"!1

View File

@@ -19,18 +19,18 @@ Test project .*
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:disabled\.case!2 \.+\*+Not Run \(Disabled\) +[0-9.]+ sec
*Start +[0-9]+: TEST:DISABLEDnotreally\.case!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:DISABLEDnotreally\.case!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed/short\.case!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/short\.case!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed/float\.case!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/float\.case!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed/char\.case!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/char\.case!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed/short\.case!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/short\.case!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed/float\.case!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/float\.case!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed/char\.case!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/char\.case!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed\.case<short>!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<short>!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed\.case<float>!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<float>!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed\.case<char>!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<char>!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed\.case<short>!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<short>!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed\.case<float>!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<float>!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed\.case<char>!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<char>!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:value/test\.case/1!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:value/test\.case/1!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:value/test\.case/"foo"!2

View File

@@ -1,16 +1,16 @@
Test project .*
*Start +[0-9]+: TEST:typed/short\.case!4
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/short\.case!4 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed/float\.case!4
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/float\.case!4 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed/char\.case!4
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/char\.case!4 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed/short\.case!4
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/short\.case!4 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed/float\.case!4
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/float\.case!4 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed/char\.case!4
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/char\.case!4 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed\.case<short>!4
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<short>!4 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed\.case<float>!4
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<float>!4 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:typed\.case<char>!4
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<char>!4 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed\.case<short>!4
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<short>!4 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed\.case<float>!4
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<float>!4 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.typed\.case<char>!4
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<char>!4 \.+ +Passed +[0-9.]+ sec
100% tests passed, 0 tests failed out of [0-9]+