[Cmake-commits] CMake branch, master, updated. v3.10.0-394-gbaa19f6

Kitware Robot kwrobot at kitware.com
Tue Nov 21 13:05:04 EST 2017


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, master has been updated
       via  baa19f658f947047dddac0228bcd52591829983d (commit)
       via  70f9f62da86d43c61435ea2d58782ba470d8d282 (commit)
      from  daeadde88871f4e2473ce429f459ae8d6ed0ffb8 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=baa19f658f947047dddac0228bcd52591829983d
commit baa19f658f947047dddac0228bcd52591829983d
Merge: daeadde 70f9f62
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Nov 21 18:00:13 2017 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Tue Nov 21 13:00:24 2017 -0500

    Merge topic 'gtest-fix-discovery'
    
    70f9f62d GoogleTest: Fix multiple discovery on same target
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !1510


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=70f9f62da86d43c61435ea2d58782ba470d8d282
commit 70f9f62da86d43c61435ea2d58782ba470d8d282
Author:     Matthew Woehlke <matthew.woehlke at kitware.com>
AuthorDate: Mon Nov 20 12:53:25 2017 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Nov 21 12:05:34 2017 -0500

    GoogleTest: Fix multiple discovery on same target
    
    According to the documentation, tests can be discovered for a target
    multiple times by using a different prefix and/or suffix to ensure name
    uniqueness. However, while this worked for gtest_add_tests, it did not
    work with gtest_discover_tests because the generated file that sets up
    the tests was named based only on the target name, and so subsequent
    discovery from the same target would clobber earlier discovery.
    
    Fix this by introducing a counter that records how many times discovery
    has been used on a target, and use this to generate unique names of the
    generated test list files.

diff --git a/Modules/GoogleTest.cmake b/Modules/GoogleTest.cmake
index 41bd1dc..3d47367 100644
--- a/Modules/GoogleTest.cmake
+++ b/Modules/GoogleTest.cmake
@@ -361,9 +361,32 @@ function(gtest_discover_tests TARGET)
     set(_TEST_LIST ${TARGET}_TESTS)
   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}
+  )
+
   # Define rule to generate test list for aforementioned test executable
-  set(ctest_include_file "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_include.cmake")
-  set(ctest_tests_file "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_tests.cmake")
+  set(ctest_file_base "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}[${counter}]")
+  set(ctest_include_file "${ctest_file_base}_include.cmake")
+  set(ctest_tests_file "${ctest_file_base}_tests.cmake")
   get_property(crosscompiling_emulator
     TARGET ${TARGET}
     PROPERTY CROSSCOMPILING_EMULATOR
diff --git a/Tests/RunCMake/GoogleTest/GoogleTest-test-stdout.txt b/Tests/RunCMake/GoogleTest/GoogleTest-test1-stdout.txt
similarity index 100%
rename from Tests/RunCMake/GoogleTest/GoogleTest-test-stdout.txt
rename to Tests/RunCMake/GoogleTest/GoogleTest-test1-stdout.txt
diff --git a/Tests/RunCMake/GoogleTest/GoogleTest-test2-stdout.txt b/Tests/RunCMake/GoogleTest/GoogleTest-test2-stdout.txt
new file mode 100644
index 0000000..960c0b9
--- /dev/null
+++ b/Tests/RunCMake/GoogleTest/GoogleTest-test2-stdout.txt
@@ -0,0 +1,25 @@
+Test project .*
+    Start  9: TEST:basic\.case_foo!2
+1/8 Test  #9: TEST:basic\.case_foo!2 \.+ +Passed +[0-9.]+ sec
+    Start 10: TEST:basic\.case_bar!2
+2/8 Test #10: TEST:basic\.case_bar!2 \.+ +Passed +[0-9.]+ sec
+    Start 11: TEST:basic\.disabled_case!2
+3/8 Test #11: TEST:basic\.disabled_case!2 \.+\*+Not Run \(Disabled\) +[0-9.]+ sec
+    Start 12: TEST:disabled\.case!2
+4/8 Test #12: TEST:disabled\.case!2 \.+\*+Not Run \(Disabled\) +[0-9.]+ sec
+    Start 13: TEST:typed/short\.case!2
+5/8 Test #13: TEST:typed/short\.case!2 \.+ +Passed +[0-9.]+ sec
+    Start 14: TEST:typed/float\.case!2
+6/8 Test #14: TEST:typed/float\.case!2 \.+ +Passed +[0-9.]+ sec
+    Start 15: TEST:value/test\.case/1!2
+7/8 Test #15: TEST:value/test\.case/1!2 \.+ +Passed +[0-9.]+ sec
+    Start 16: TEST:value/test\.case/"foo"!2
+8/8 Test #16: TEST:value/test\.case/"foo"!2 \.+ +Passed +[0-9.]+ sec
+
+100% tests passed, 0 tests failed out of 6
+
+Total Test time \(real\) = +[0-9.]+ sec
+
+The following tests did not run:
+.*11 - TEST:basic\.disabled_case!2 \(Disabled\)
+.*12 - TEST:disabled\.case!2 \(Disabled\)
diff --git a/Tests/RunCMake/GoogleTest/GoogleTest.cmake b/Tests/RunCMake/GoogleTest/GoogleTest.cmake
index 9a3677f..58f4196 100644
--- a/Tests/RunCMake/GoogleTest/GoogleTest.cmake
+++ b/Tests/RunCMake/GoogleTest/GoogleTest.cmake
@@ -11,5 +11,13 @@ gtest_discover_tests(
   TEST_PREFIX TEST:
   TEST_SUFFIX !1
   EXTRA_ARGS how now "\"brown\" cow"
-  PROPERTIES LABELS TEST
+  PROPERTIES LABELS TEST1
+)
+
+gtest_discover_tests(
+  fake_gtest
+  TEST_PREFIX TEST:
+  TEST_SUFFIX !2
+  EXTRA_ARGS how now "\"brown\" cow"
+  PROPERTIES LABELS TEST2
 )
diff --git a/Tests/RunCMake/GoogleTest/RunCMakeTest.cmake b/Tests/RunCMake/GoogleTest/RunCMakeTest.cmake
index aec8568..b79af26 100644
--- a/Tests/RunCMake/GoogleTest/RunCMakeTest.cmake
+++ b/Tests/RunCMake/GoogleTest/RunCMakeTest.cmake
@@ -15,10 +15,16 @@ function(run_GoogleTest)
     --build .
     --config Debug
   )
-  run_cmake_command(GoogleTest-test
+  run_cmake_command(GoogleTest-test1
     ${CMAKE_CTEST_COMMAND}
     -C Debug
-    -L TEST
+    -L TEST1
+    --no-label-summary
+  )
+  run_cmake_command(GoogleTest-test2
+    ${CMAKE_CTEST_COMMAND}
+    -C Debug
+    -L TEST2
     --no-label-summary
   )
 endfunction()

-----------------------------------------------------------------------

Summary of changes:
 Modules/GoogleTest.cmake                           |   27 ++++++++++++++++++--
 ...test-stdout.txt => GoogleTest-test1-stdout.txt} |    0
 .../GoogleTest/GoogleTest-test2-stdout.txt         |   25 ++++++++++++++++++
 Tests/RunCMake/GoogleTest/GoogleTest.cmake         |   10 +++++++-
 Tests/RunCMake/GoogleTest/RunCMakeTest.cmake       |   10 ++++++--
 5 files changed, 67 insertions(+), 5 deletions(-)
 rename Tests/RunCMake/GoogleTest/{GoogleTest-test-stdout.txt => GoogleTest-test1-stdout.txt} (100%)
 create mode 100644 Tests/RunCMake/GoogleTest/GoogleTest-test2-stdout.txt


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list