Browse Source

Merge branch 'gtest-fix-discovery' into release-3.10

Merge-request: !1510
Brad King 8 years ago
parent
commit
c2019d7c0c

+ 25 - 2
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

+ 0 - 0
Tests/RunCMake/GoogleTest/GoogleTest-test-stdout.txt → Tests/RunCMake/GoogleTest/GoogleTest-test1-stdout.txt


+ 25 - 0
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\)

+ 9 - 1
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
 )

+ 8 - 2
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()