Merge topic 'gtest-alias'

741233a02b GoogleTest: Allow alias target in test discovery

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11876
diff --git a/Modules/GoogleTest.cmake b/Modules/GoogleTest.cmake
index ff9371c..72f307f 100644
--- a/Modules/GoogleTest.cmake
+++ b/Modules/GoogleTest.cmake
@@ -599,30 +599,12 @@
     set(arg_DISCOVERY_MODE ${CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE})
   endif()
 
-  get_property(
-    has_counter
-    TARGET ${target}
-    PROPERTY CTEST_DISCOVERED_TEST_COUNTER
-    SET
-  )
-  if(has_counter)
-    get_property(
-      counter
-      TARGET ${target}
-      PROPERTY CTEST_DISCOVERED_TEST_COUNTER
-    )
-    math(EXPR counter "${counter} + 1")
-  else()
-    set(counter 1)
-  endif()
-  set_property(
-    TARGET ${target}
-    PROPERTY CTEST_DISCOVERED_TEST_COUNTER
-    ${counter}
-  )
+  string(SHA256 argn_hash "${ARGN}")
+  string(SUBSTRING "${argn_hash}" 0 8 argn_hash)
+  string(MAKE_C_IDENTIFIER "${target}_${argn_hash}" ctest_file_base)
 
   # Define rule to generate test list for aforementioned test executable
-  set(ctest_file_base "${CMAKE_CURRENT_BINARY_DIR}/${target}[${counter}]")
+  set(ctest_file_base "${CMAKE_CURRENT_BINARY_DIR}/${ctest_file_base}")
   set(ctest_include_file "${ctest_file_base}_include.cmake")
   set(ctest_tests_file "${ctest_file_base}_tests.cmake")
   get_property(test_launcher
diff --git a/Tests/RunCMake/GoogleTest/GoogleTest-discovery-flush-script-check-list.cmake.in b/Tests/RunCMake/GoogleTest/GoogleTest-discovery-flush-script-check-list.cmake.in
index b334d2b..cfc1701 100644
--- a/Tests/RunCMake/GoogleTest/GoogleTest-discovery-flush-script-check-list.cmake.in
+++ b/Tests/RunCMake/GoogleTest/GoogleTest-discovery-flush-script-check-list.cmake.in
@@ -15,9 +15,9 @@
 # uncovered by checking the name buffer flushing above.
 
 # PRE_TEST can have a config-specific tests file, POST_BUILD never does
-set(tests_file "@CMAKE_CURRENT_BINARY_DIR@/flush_script_test[1]_tests-Debug.cmake")
+set(tests_file "@CMAKE_CURRENT_BINARY_DIR@/flush_script_test_e3b0c442_tests-Debug.cmake")
 if(NOT EXISTS "${tests_file}")
-  set(tests_file "@CMAKE_CURRENT_BINARY_DIR@/flush_script_test[1]_tests.cmake")
+  set(tests_file "@CMAKE_CURRENT_BINARY_DIR@/flush_script_test_e3b0c442_tests.cmake")
 endif()
 if(NOT EXISTS "${tests_file}")
   message(FATAL_ERROR "Tests file is missing")
diff --git a/Tests/RunCMake/GoogleTest/GoogleTest.cmake b/Tests/RunCMake/GoogleTest/GoogleTest.cmake
index 792f5f7..8c33cf6 100644
--- a/Tests/RunCMake/GoogleTest/GoogleTest.cmake
+++ b/Tests/RunCMake/GoogleTest/GoogleTest.cmake
@@ -6,10 +6,11 @@
 include(xcode_sign_adhoc.cmake)
 
 add_executable(fake_gtest fake_gtest.cpp)
+add_executable(fake::gtest ALIAS fake_gtest)
 xcode_sign_adhoc(fake_gtest)
 
 gtest_discover_tests(
-  fake_gtest
+  fake::gtest
   TEST_PREFIX TEST:
   TEST_SUFFIX !1
   EXTRA_ARGS how now "\"brown\" cow"