Browse Source

Merge topic 'GoogleTest-discover-type-params'

073dd1bd81 GoogleTest: Change format for typed tests
f28f738bd2 GoogleTest: Fix type param tests for suites with many cases

Acked-by: Kitware Robot <[email protected]>
Acked-by: buildbot <[email protected]>
Merge-request: !6958
Brad King 3 years ago
parent
commit
8fa592a5f2

+ 10 - 3
Modules/GoogleTestAddTests.cmake

@@ -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)

+ 7 - 5
Tests/RunCMake/GoogleTest/GoogleTest-discovery-arg-change-typed-stdout.txt

@@ -1,7 +1,9 @@
 Test project .*/Tests/RunCMake/GoogleTest/GoogleTest-discovery-arg-change
-  Test #1: typed/short\.case
-  Test #2: typed/float\.case
-  Test #3: ns\.typed/short\.case
-  Test #4: ns\.typed/float\.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: 4
+Total Tests: [0-9]+

+ 12 - 8
Tests/RunCMake/GoogleTest/GoogleTest-test1-stdout.txt

@@ -19,14 +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: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: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

+ 12 - 8
Tests/RunCMake/GoogleTest/GoogleTest-test2-stdout.txt

@@ -19,14 +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: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: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

+ 12 - 8
Tests/RunCMake/GoogleTest/GoogleTest-test4-stdout.txt

@@ -1,12 +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: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: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]+
 

+ 4 - 4
Tests/RunCMake/GoogleTest/fake_gtest.cpp

@@ -36,11 +36,11 @@ int main(int argc, char** argv)
     if (!is_basic_only) {
       const char* typed_suite_names[] = { "typed", "ns.typed" };
       for (size_t i = 0; i < ARRAY_SIZE(typed_suite_names); i++) {
-        std::cout << typed_suite_names[i] << "/0.  # TypeParam = short"
-                  << std::endl;
+        std::cout << typed_suite_names[i] << "/0.  # TypeParam = short\n";
         std::cout << "  case" << std::endl;
-        std::cout << typed_suite_names[i] << "/1.  # TypeParam = float"
-                  << std::endl;
+        std::cout << typed_suite_names[i] << "/1.  # TypeParam = float\n";
+        std::cout << "  case" << std::endl;
+        std::cout << typed_suite_names[i] << "/42.  # TypeParam = char\n";
         std::cout << "  case" << std::endl;
       }
     }