[Cmake-commits] CMake branch, next, updated. v2.8.12.1-7096-g69bf3d9

Rolf Eike Beer eike at sf-mail.de
Tue Jan 14 11:54:20 EST 2014


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, next has been updated
       via  69bf3d91a486e5042522240b9806854ab442dc57 (commit)
       via  299f3260b6d82f01755be25c14b1345c64e4ee80 (commit)
      from  2b9a6a1731ec7922be4cd2587a7180d09f3462c5 (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 -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=69bf3d91a486e5042522240b9806854ab442dc57
commit 69bf3d91a486e5042522240b9806854ab442dc57
Merge: 2b9a6a1 299f326
Author:     Rolf Eike Beer <eike at sf-mail.de>
AuthorDate: Tue Jan 14 11:54:19 2014 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Jan 14 11:54:19 2014 -0500

    Merge topic 'skip-return-code' into next
    
    299f3260 allow to mark a test as "Not Run" with a specific return code (#8466)


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=299f3260b6d82f01755be25c14b1345c64e4ee80
commit 299f3260b6d82f01755be25c14b1345c64e4ee80
Author:     Rolf Eike Beer <eike at sf-mail.de>
AuthorDate: Fri Sep 21 17:37:08 2012 +0200
Commit:     Rolf Eike Beer <kde at opensource.sf-tec.de>
CommitDate: Tue Jan 14 17:52:44 2014 +0100

    allow to mark a test as "Not Run" with a specific return code (#8466)

diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst
index d569e31..c0ec0fe 100644
--- a/Help/manual/cmake-properties.7.rst
+++ b/Help/manual/cmake-properties.7.rst
@@ -247,6 +247,7 @@ Properties on Tests
    /prop_test/REQUIRED_FILES
    /prop_test/RESOURCE_LOCK
    /prop_test/RUN_SERIAL
+   /prop_test/SKIP_RETURN_CODE
    /prop_test/TIMEOUT
    /prop_test/WILL_FAIL
    /prop_test/WORKING_DIRECTORY
diff --git a/Help/prop_test/SKIP_RETURN_CODE.rst b/Help/prop_test/SKIP_RETURN_CODE.rst
new file mode 100644
index 0000000..c61273c
--- /dev/null
+++ b/Help/prop_test/SKIP_RETURN_CODE.rst
@@ -0,0 +1,9 @@
+SKIP_RETURN_CODE
+----------------
+
+Return code to mark a test as skipped.
+
+Sometimes only a test itself can determine if all requirements for the
+test are met. If such a situation should not be considered a hard failure
+a return code of the process can be specified that will mark the test as
+"Not Run" if it is encountered.
diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx
index 0e2fa41..cdf90b9 100644
--- a/Source/CTest/cmCTestRunTest.cxx
+++ b/Source/CTest/cmCTestRunTest.cxx
@@ -206,7 +206,13 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
     bool success =
       !forceFail &&  (retVal == 0 ||
       this->TestProperties->RequiredRegularExpressions.size());
-    if((success && !this->TestProperties->WillFail)
+    if(this->TestProperties->SkipReturnCode >= 0
+      && this->TestProperties->SkipReturnCode == retVal)
+      {
+      this->TestResult.Status = cmCTestTestHandler::NOT_RUN;
+      cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Skipped ");
+      }
+    else if((success && !this->TestProperties->WillFail)
       || (!success && this->TestProperties->WillFail))
       {
       this->TestResult.Status = cmCTestTestHandler::COMPLETED;
diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx
index 26f8014..3a04b33 100644
--- a/Source/CTest/cmCTestTestHandler.cxx
+++ b/Source/CTest/cmCTestTestHandler.cxx
@@ -2229,6 +2229,14 @@ bool cmCTestTestHandler::SetTestsProperties(
               rtit->Processors = 1;
               }
             }
+          if ( key == "SKIP_RETURN_CODE" )
+            {
+            rtit->SkipReturnCode = atoi(val.c_str());
+            if(rtit->SkipReturnCode < 0 || rtit->SkipReturnCode > 255)
+              {
+              rtit->SkipReturnCode = -1;
+              }
+            }
           if ( key == "DEPENDS" )
             {
             std::vector<std::string> lval;
@@ -2364,6 +2372,7 @@ bool cmCTestTestHandler::AddTest(const std::vector<std::string>& args)
   test.ExplicitTimeout = false;
   test.Cost = 0;
   test.Processors = 1;
+  test.SkipReturnCode = -1;
   test.PreviousRuns = 0;
   if (this->UseIncludeRegExpFlag &&
     !this->IncludeTestsRegularExpression.find(testname.c_str()))
diff --git a/Source/CTest/cmCTestTestHandler.h b/Source/CTest/cmCTestTestHandler.h
index 6dda300..63f9c93 100644
--- a/Source/CTest/cmCTestTestHandler.h
+++ b/Source/CTest/cmCTestTestHandler.h
@@ -109,6 +109,8 @@ public:
     int Index;
     //Requested number of process slots
     int Processors;
+    // return code of test which will mark test as "not run"
+    int SkipReturnCode;
     std::vector<std::string> Environment;
     std::vector<std::string> Labels;
     std::set<std::string> LockedResources;
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 7969078..8b2db1b 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -2230,6 +2230,17 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
     --output-log "${CMake_BINARY_DIR}/Tests/CTestTestParallel/testOutput.log"
     )
 
+  configure_file(
+    "${CMake_SOURCE_DIR}/Tests/CTestTestSkipReturnCode/test.cmake.in"
+    "${CMake_BINARY_DIR}/Tests/CTestTestSkipReturnCode/test.cmake"
+    @ONLY ESCAPE_QUOTES)
+  add_test(CTestTestSkipReturnCode ${CMAKE_CTEST_COMMAND}
+    -S "${CMake_BINARY_DIR}/Tests/CTestTestSkipReturnCode/test.cmake" -V
+    --output-log "${CMake_BINARY_DIR}/Tests/CTestTestSkipReturnCode/testOutput.log"
+    )
+  set_tests_properties(CTestTestSkipReturnCode PROPERTIES
+    PASS_REGULAR_EXPRESSION "CMakeV1 \\.* +Passed.*CMakeV2 \\.+\\*+Skipped")
+
   ADD_TEST_MACRO(CTestTestSerialInDepends ${CMAKE_CTEST_COMMAND} -j 4
     --output-on-failure -C "\${CTestTest_CONFIG}")
 

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

Summary of changes:
 Help/manual/cmake-properties.7.rst  |    1 +
 Help/prop_test/SKIP_RETURN_CODE.rst |    9 +++++++++
 Source/CTest/cmCTestRunTest.cxx     |    8 +++++++-
 Source/CTest/cmCTestTestHandler.cxx |    9 +++++++++
 Source/CTest/cmCTestTestHandler.h   |    2 ++
 Tests/CMakeLists.txt                |   11 +++++++++++
 6 files changed, 39 insertions(+), 1 deletion(-)
 create mode 100644 Help/prop_test/SKIP_RETURN_CODE.rst


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list