cmCTestTestHandler: count skipped tests as disabled

The `Skipped` status is basically a runtime version of the `Disabled`
status (set as a property on the test by the configure step), so treat
them the same.
This commit is contained in:
Ben Boeckel
2017-04-21 13:46:09 -04:00
parent 202a44a4ca
commit ab8bbef9c6
12 changed files with 137 additions and 1 deletions

View File

@@ -17,6 +17,7 @@
#include <string.h>
#include <time.h>
#include "cmAlgorithms.h"
#include "cmCTest.h"
#include "cmCTestBatchTestHandler.h"
#include "cmCTestMultiProcessHandler.h"
@@ -495,7 +496,8 @@ int cmCTestTestHandler::ProcessHandler()
for (SetOfTests::iterator ftit = resultsSet.begin();
ftit != resultsSet.end(); ++ftit) {
if (ftit->CompletionStatus == "Disabled") {
if (cmHasLiteralPrefix(ftit->CompletionStatus, "SKIP_RETURN_CODE=") ||
ftit->CompletionStatus == "Disabled") {
disabledTests.push_back(*ftit);
}
}
@@ -544,6 +546,7 @@ int cmCTestTestHandler::ProcessHandler()
for (SetOfTests::iterator ftit = resultsSet.begin();
ftit != resultsSet.end(); ++ftit) {
if (ftit->Status != cmCTestTestHandler::COMPLETED &&
!cmHasLiteralPrefix(ftit->CompletionStatus, "SKIP_RETURN_CODE=") &&
ftit->CompletionStatus != "Disabled") {
ofs << ftit->TestCount << ":" << ftit->Name << std::endl;
cmCTestLog(

View File

@@ -204,6 +204,7 @@ add_RunCMake_test(ctest_start)
add_RunCMake_test(ctest_submit)
add_RunCMake_test(ctest_test)
add_RunCMake_test(ctest_disabled_test)
add_RunCMake_test(ctest_skipped_test)
add_RunCMake_test(ctest_upload)
add_RunCMake_test(ctest_fixtures)
add_RunCMake_test(file)

View File

@@ -0,0 +1,12 @@
cmake_minimum_required(VERSION 3.8)
project(@CASE_NAME@ C)
include(CTest)
if (WIN32)
set(skip_command "@CMAKE_CURRENT_LIST_DIR@/skip.bat")
else ()
set(skip_command "@CMAKE_CURRENT_LIST_DIR@/skip.sh")
endif ()
add_test(NAME SuccessfulTest COMMAND "${CMAKE_COMMAND}" --version)
@CASE_CMAKELISTS_SUFFIX_CODE@

View File

@@ -0,0 +1 @@
set(CTEST_PROJECT_NAME "@CASE_NAME@")

View File

@@ -0,0 +1,51 @@
include(RunCTest)
function(run_SkipTest)
set(CASE_CMAKELISTS_SUFFIX_CODE [[
add_test(NAME SkipTest COMMAND ${skip_command})
set_tests_properties(SkipTest PROPERTIES SKIP_RETURN_CODE 125)
]])
run_ctest(SkipTest)
endfunction()
run_SkipTest()
function(run_SkipSetupTest)
set(CASE_CMAKELISTS_SUFFIX_CODE [[
add_test(NAME SkipTest COMMAND ${skip_command})
add_test(NAME SuccessfulCleanupTest COMMAND "${CMAKE_COMMAND}" --version)
set_tests_properties(SkipTest PROPERTIES SKIP_RETURN_CODE 125
FIXTURES_SETUP "Foo")
set_tests_properties(SuccessfulTest PROPERTIES FIXTURES_REQUIRED "Foo")
set_tests_properties(SuccessfulCleanupTest PROPERTIES FIXTURES_CLEANUP "Foo")
]])
run_ctest(SkipSetupTest)
endfunction()
run_SkipSetupTest()
function(run_SkipRequiredTest)
set(CASE_CMAKELISTS_SUFFIX_CODE [[
add_test(NAME SkipTest COMMAND ${skip_command})
add_test(NAME SuccessfulCleanupTest COMMAND "${CMAKE_COMMAND}" --version)
set_tests_properties(SuccessfulTest PROPERTIES FIXTURES_SETUP "Foo")
set_tests_properties(SkipTest PROPERTIES SKIP_RETURN_CODE 125
FIXTURES_REQUIRED "Foo")
set_tests_properties(SuccessfulCleanupTest PROPERTIES FIXTURES_CLEANUP "Foo")
]])
run_ctest(SkipRequiredTest)
endfunction()
run_SkipRequiredTest()
function(run_SkipCleanupTest)
set(CASE_CMAKELISTS_SUFFIX_CODE [[
add_test(NAME CleanupTest COMMAND ${skip_command})
set_tests_properties(SuccessfulTest PROPERTIES FIXTURES_REQUIRED "Foo")
set_tests_properties(CleanupTest PROPERTIES SKIP_RETURN_CODE 125
FIXTURES_CLEANUP "Foo")
]])
run_ctest(SkipCleanupTest)
endfunction()
run_SkipCleanupTest()

View File

@@ -0,0 +1,11 @@
Start 1: SuccessfulTest
1/2 Test #1: SuccessfulTest ................... Passed +[0-9.]+ sec
Start 2: CleanupTest
2/2 Test #2: CleanupTest ......................\*\*\*\Skipped +[0-9.]+ sec
+
100% tests passed, 0 tests failed out of 2
+
Total Test time \(real\) = +[0-9.]+ sec
+
The following tests are disabled and did not run:
.*2 \- CleanupTest

View File

@@ -0,0 +1,13 @@
Start 1: SuccessfulTest
1/3 Test #1: SuccessfulTest ................... Passed +[0-9.]+ sec
Start 2: SkipTest
2/3 Test #2: SkipTest .........................\*\*\*\Skipped +[0-9.]+ sec
Start 3: SuccessfulCleanupTest
3/3 Test #3: SuccessfulCleanupTest ............ Passed +[0-9.]+ sec
+
100% tests passed, 0 tests failed out of 3
+
Total Test time \(real\) = +[0-9.]+ sec
+
The following tests are disabled and did not run:
.*2 \- SkipTest

View File

@@ -0,0 +1,13 @@
Start 2: SkipTest
1/3 Test #2: SkipTest .........................\*\*\*\Skipped +[0-9.]+ sec
Start 1: SuccessfulTest
2/3 Test #1: SuccessfulTest ................... Passed +[0-9.]+ sec
Start 3: SuccessfulCleanupTest
3/3 Test #3: SuccessfulCleanupTest ............ Passed +[0-9.]+ sec
+
100% tests passed, 0 tests failed out of 3
+
Total Test time \(real\) = +[0-9.]+ sec
+
The following tests are disabled and did not run:
.*2 \- SkipTest

View File

@@ -0,0 +1,11 @@
Start 1: SuccessfulTest
1/2 Test #1: SuccessfulTest ................... Passed +[0-9.]+ sec
Start 2: SkipTest
2/2 Test #2: SkipTest .........................\*\*\*\Skipped +[0-9.]+ sec
+
100% tests passed, 0 tests failed out of 2
+
Total Test time \(real\) = +[0-9.]+ sec
+
The following tests are disabled and did not run:
.*2 \- SkipTest

View File

@@ -0,0 +1 @@
EXIT 125

View File

@@ -0,0 +1,3 @@
#!/bin/sh
exit 125

View File

@@ -0,0 +1,16 @@
cmake_minimum_required(VERSION 3.7)
set(CTEST_SITE "test-site")
set(CTEST_BUILD_NAME "test-build-name")
set(CTEST_SOURCE_DIRECTORY "@RunCMake_BINARY_DIR@/@CASE_NAME@")
set(CTEST_BINARY_DIRECTORY "@RunCMake_BINARY_DIR@/@CASE_NAME@-build")
set(CTEST_CMAKE_GENERATOR "@RunCMake_GENERATOR@")
set(CTEST_CMAKE_GENERATOR_PLATFORM "@RunCMake_GENERATOR_PLATFORM@")
set(CTEST_CMAKE_GENERATOR_TOOLSET "@RunCMake_GENERATOR_TOOLSET@")
set(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}")
set(ctest_test_args "@CASE_CTEST_TEST_ARGS@")
ctest_start(Experimental)
ctest_configure()
ctest_build()
ctest_test(${ctest_test_args})