Selaa lähdekoodia

GoogleTest: Add tests for named parameters

These test cases verify the current behavior, which incorrectly
parses named type or value parameters (#26939). They exist
to support an upcoming json-based test discovery, ensuring
the same test names are generated for backward compatibility.
Dennis Lambe Jr. 5 kuukautta sitten
vanhempi
sitoutus
54bb974b27

+ 12 - 9
Tests/RunCMake/GoogleTest/GoogleTest-discovery-arg-change-typed-stdout.txt

@@ -1,12 +1,15 @@
 Test project .*/Tests/RunCMake/GoogleTest/GoogleTest-discovery-arg-change
-  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>
-  Test #[0-9]+: prefix/typed\.case<short>
-  Test #[0-9]+: prefix/typed\.case<float>
-  Test #[0-9]+: prefix/typed\.case<char>
+  Test +#[0-9]+: typed\.case<short>
+  Test +#[0-9]+: typed\.case<float>
+  Test +#[0-9]+: typed\.case<char>
+  Test +#[0-9]+: typed/named\.  # TypeParam = int\.case<typed/named\.  # TypeParam = int>
+  Test +#[0-9]+: ns\.typed\.case<short>
+  Test +#[0-9]+: ns\.typed\.case<float>
+  Test +#[0-9]+: ns\.typed\.case<char>
+  Test +#[0-9]+: ns\.typed/named\.  # TypeParam = int\.case<ns\.typed/named\.  # TypeParam = int>
+  Test +#[0-9]+: prefix/typed\.case<short>
+  Test +#[0-9]+: prefix/typed\.case<float>
+  Test +#[0-9]+: prefix/typed\.case<char>
+  Test +#[0-9]+: prefix/typed/named\.  # TypeParam = int\.case<prefix/typed/named\.  # TypeParam = int>
 
 Total Tests: [0-9]+

+ 28 - 0
Tests/RunCMake/GoogleTest/GoogleTest-test1-stdout.txt

@@ -25,30 +25,42 @@ Test project .*
  *[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:typed/named\.  # TypeParam = int\.case<typed/named\.  # TypeParam = int>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/named\.  # TypeParam = int\.case<typed/named\.  # TypeParam = int>!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:ns\.typed/named\.  # TypeParam = int\.case<ns\.typed/named\.  # TypeParam = int>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/named\.  # TypeParam = int\.case<ns\.typed/named\.  # TypeParam = int>!1 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:prefix/typed\.case<short>!1
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/typed\.case<short>!1 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:prefix/typed\.case<float>!1
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/typed\.case<float>!1 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:prefix/typed\.case<char>!1
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/typed\.case<char>!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:prefix/typed/named\.  # TypeParam = int\.case<prefix/typed/named\.  # TypeParam = int>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/typed/named\.  # TypeParam = int\.case<prefix/typed/named\.  # TypeParam = int>!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
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:value/test\.case/"foo"!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:value/test\.case/named  # GetParam\(\) = 'c'!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:value/test\.case/named  # GetParam\(\) = 'c'!1 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:ns\.value/test\.case/1!1
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.value/test\.case/1!1 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:ns\.value/test\.case/"foo"!1
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.value/test\.case/"foo"!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns\.value/test\.case/named  # GetParam\(\) = 'c'!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.value/test\.case/named  # GetParam\(\) = 'c'!1 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:prefix/value/test\.case/1!1
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/value/test\.case/1!1 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:prefix/value/test\.case/"foo"!1
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/value/test\.case/"foo"!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:prefix/value/test\.case/named  # GetParam\(\) = 'c'!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/value/test\.case/named  # GetParam\(\) = 'c'!1 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:param/special\.case/"semicolon;"!1
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:param/special\.case/"semicolon;"!1 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:param/special\.case/"backslash\\"!1
@@ -97,6 +109,22 @@ Test project .*
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/param/special\.case/"__csb___text"!1 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:prefix/param/special\.case/"S o m  e   "!1
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/param/special\.case/"S o m  e   "!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:both_suite\.  # TypeParam = TYPE\.test  # GetParam\(\) = VALUE<both_suite\.  # TypeParam = TYPE>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:both_suite\.  # TypeParam = TYPE\.test  # GetParam\(\) = VALUE<both_suite\.  # TypeParam = TYPE>!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:both_suite\.  # TypeParam = TYPE\.case/test  # GetParam\(\) = VALUE<both_suite\.  # TypeParam = TYPE>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:both_suite\.  # TypeParam = TYPE\.case/test  # GetParam\(\) = VALUE<both_suite\.  # TypeParam = TYPE>!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:both/suite\.  # TypeParam = TYPE\.test  # GetParam\(\) = VALUE<both/suite\.  # TypeParam = TYPE>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:both/suite\.  # TypeParam = TYPE\.test  # GetParam\(\) = VALUE<both/suite\.  # TypeParam = TYPE>!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:both/suite\.  # TypeParam = TYPE\.case/test  # GetParam\(\) = VALUE<both/suite\.  # TypeParam = TYPE>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:both/suite\.  # TypeParam = TYPE\.case/test  # GetParam\(\) = VALUE<both/suite\.  # TypeParam = TYPE>!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns.both/suite\.  # TypeParam = TYPE\.test  # GetParam\(\) = VALUE<ns.both/suite\.  # TypeParam = TYPE>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns.both/suite\.  # TypeParam = TYPE\.test  # GetParam\(\) = VALUE<ns.both/suite\.  # TypeParam = TYPE>!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns.both/suite\.  # TypeParam = TYPE\.case/test  # GetParam\(\) = VALUE<ns.both/suite\.  # TypeParam = TYPE>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns.both/suite\.  # TypeParam = TYPE\.case/test  # GetParam\(\) = VALUE<ns.both/suite\.  # TypeParam = TYPE>!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:prefix/both/suite\.  # TypeParam = TYPE\.test  # GetParam\(\) = VALUE<prefix/both/suite\.  # TypeParam = TYPE>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/both/suite\.  # TypeParam = TYPE\.test  # GetParam\(\) = VALUE<prefix/both/suite\.  # TypeParam = TYPE>!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:prefix/both/suite\.  # TypeParam = TYPE\.case/test  # GetParam\(\) = VALUE<prefix/both/suite\.  # TypeParam = TYPE>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/both/suite\.  # TypeParam = TYPE\.case/test  # GetParam\(\) = VALUE<prefix/both/suite\.  # TypeParam = TYPE>!1 \.+ +Passed +[0-9.]+ sec
 
 100% tests passed, 0 tests failed out of [0-9]+
 

+ 28 - 0
Tests/RunCMake/GoogleTest/GoogleTest-test2-stdout.txt

@@ -25,30 +25,42 @@ Test project .*
  *[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:typed/named\.  # TypeParam = int\.case<typed/named\.  # TypeParam = int>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/named\.  # TypeParam = int\.case<typed/named\.  # TypeParam = int>!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:ns\.typed/named\.  # TypeParam = int\.case<ns\.typed/named\.  # TypeParam = int>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/named\.  # TypeParam = int\.case<ns\.typed/named\.  # TypeParam = int>!2 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:prefix/typed\.case<short>!2
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/typed\.case<short>!2 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:prefix/typed\.case<float>!2
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/typed\.case<float>!2 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:prefix/typed\.case<char>!2
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/typed\.case<char>!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:prefix/typed/named\.  # TypeParam = int\.case<prefix/typed/named\.  # TypeParam = int>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/typed/named\.  # TypeParam = int\.case<prefix/typed/named\.  # TypeParam = int>!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
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:value/test\.case/"foo"!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:value/test\.case/named  # GetParam\(\) = 'c'!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:value/test\.case/named  # GetParam\(\) = 'c'!2 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:ns\.value/test\.case/1!2
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.value/test\.case/1!2 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:ns\.value/test\.case/"foo"!2
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.value/test\.case/"foo"!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns\.value/test\.case/named  # GetParam\(\) = 'c'!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.value/test\.case/named  # GetParam\(\) = 'c'!2 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:prefix/value/test\.case/1!2
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/value/test\.case/1!2 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:prefix/value/test\.case/"foo"!2
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/value/test\.case/"foo"!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:prefix/value/test\.case/named  # GetParam\(\) = 'c'!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/value/test\.case/named  # GetParam\(\) = 'c'!2 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:param/special\.case/"semicolon;"!2
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:param/special\.case/"semicolon;"!2 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:param/special\.case/"backslash\\"!2
@@ -97,6 +109,22 @@ Test project .*
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/param/special\.case/"__csb___text"!2 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:prefix/param/special\.case/"S o m  e   "!2
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/param/special\.case/"S o m  e   "!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:both_suite\.  # TypeParam = TYPE\.test  # GetParam\(\) = VALUE<both_suite\.  # TypeParam = TYPE>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:both_suite\.  # TypeParam = TYPE\.test  # GetParam\(\) = VALUE<both_suite\.  # TypeParam = TYPE>!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:both_suite\.  # TypeParam = TYPE\.case/test  # GetParam\(\) = VALUE<both_suite\.  # TypeParam = TYPE>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:both_suite\.  # TypeParam = TYPE\.case/test  # GetParam\(\) = VALUE<both_suite\.  # TypeParam = TYPE>!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:both/suite\.  # TypeParam = TYPE\.test  # GetParam\(\) = VALUE<both/suite\.  # TypeParam = TYPE>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:both/suite\.  # TypeParam = TYPE\.test  # GetParam\(\) = VALUE<both/suite\.  # TypeParam = TYPE>!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:both/suite\.  # TypeParam = TYPE\.case/test  # GetParam\(\) = VALUE<both/suite\.  # TypeParam = TYPE>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:both/suite\.  # TypeParam = TYPE\.case/test  # GetParam\(\) = VALUE<both/suite\.  # TypeParam = TYPE>!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns.both/suite\.  # TypeParam = TYPE\.test  # GetParam\(\) = VALUE<ns.both/suite\.  # TypeParam = TYPE>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns.both/suite\.  # TypeParam = TYPE\.test  # GetParam\(\) = VALUE<ns.both/suite\.  # TypeParam = TYPE>!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns.both/suite\.  # TypeParam = TYPE\.case/test  # GetParam\(\) = VALUE<ns.both/suite\.  # TypeParam = TYPE>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns.both/suite\.  # TypeParam = TYPE\.case/test  # GetParam\(\) = VALUE<ns.both/suite\.  # TypeParam = TYPE>!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:prefix/both/suite\.  # TypeParam = TYPE\.test  # GetParam\(\) = VALUE<prefix/both/suite\.  # TypeParam = TYPE>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/both/suite\.  # TypeParam = TYPE\.test  # GetParam\(\) = VALUE<prefix/both/suite\.  # TypeParam = TYPE>!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:prefix/both/suite\.  # TypeParam = TYPE\.case/test  # GetParam\(\) = VALUE<prefix/both/suite\.  # TypeParam = TYPE>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/both/suite\.  # TypeParam = TYPE\.case/test  # GetParam\(\) = VALUE<prefix/both/suite\.  # TypeParam = TYPE>!2 \.+ +Passed +[0-9.]+ sec
 
 100% tests passed, 0 tests failed out of [0-9]+
 

+ 6 - 0
Tests/RunCMake/GoogleTest/GoogleTest-test4-stdout.txt

@@ -5,18 +5,24 @@ Test project .*
  *[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:typed/named\.  # TypeParam = int\.case<typed/named\.  # TypeParam = int>!4
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/named\.  # TypeParam = int\.case<typed/named\.  # TypeParam = int>!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
+ *Start +[0-9]+: TEST:ns\.typed/named\.  # TypeParam = int\.case<ns\.typed/named\.  # TypeParam = int>!4
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/named\.  # TypeParam = int\.case<ns\.typed/named\.  # TypeParam = int>!4 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:prefix/typed\.case<short>!4
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/typed\.case<short>!4 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:prefix/typed\.case<float>!4
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/typed\.case<float>!4 \.+ +Passed +[0-9.]+ sec
  *Start +[0-9]+: TEST:prefix/typed\.case<char>!4
  *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/typed\.case<char>!4 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:prefix/typed/named\.  # TypeParam = int\.case<prefix/typed/named\.  # TypeParam = int>!4
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:prefix/typed/named\.  # TypeParam = int\.case<prefix/typed/named\.  # TypeParam = int>!4 \.+ +Passed +[0-9.]+ sec
 
 100% tests passed, 0 tests failed out of [0-9]+
 

+ 12 - 0
Tests/RunCMake/GoogleTest/fake_gtest.cpp

@@ -43,6 +43,8 @@ int main(int argc, char** argv)
         std::cout << "  case" << std::endl;
         std::cout << typed_suite_names[i] << "/42.  # TypeParam = char\n";
         std::cout << "  case" << std::endl;
+        std::cout << typed_suite_names[i] << "/named.  # TypeParam = int\n";
+        std::cout << "  case" << std::endl;
       }
     }
     if (!is_basic_only && !is_typed_only) {
@@ -52,6 +54,7 @@ int main(int argc, char** argv)
         std::cout << value_suite_names[i] << "/test." << std::endl;
         std::cout << "  case/0  # GetParam() = 1" << std::endl;
         std::cout << "  case/1  # GetParam() = \"foo\"" << std::endl;
+        std::cout << "  case/named  # GetParam() = 'c'" << std::endl;
       }
       char const* param_suite_names[] = { "param", "ns.param",
                                           "prefix/param" };
@@ -66,6 +69,15 @@ int main(int argc, char** argv)
         std::cout << "  case/6  # GetParam() = \"__csb___text\"" << std::endl;
         std::cout << "  case/7  # GetParam() = \"S o m  e   \"" << std::endl;
       }
+      char const* both_suite_names[] = { "both_suite", "both/suite",
+                                         "ns.both/suite",
+                                         "prefix/both/suite" };
+      for (size_t k = 0; k < ARRAY_SIZE(both_suite_names); k++) {
+        std::cout << both_suite_names[k] << ".  # TypeParam = TYPE"
+                  << std::endl;
+        std::cout << "  test  # GetParam() = VALUE" << std::endl;
+        std::cout << "  case/test  # GetParam() = VALUE" << std::endl;
+      }
     }
     return 0;
   }