[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