[Cmake-commits] CMake branch, next, updated. v2.8.1-1374-gba03616

Zach Mullen zach.mullen at kitware.com
Thu Jun 10 15:05:16 EDT 2010


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  ba03616b250dd1ce3c3d8d86cf3dd42ec5e525b0 (commit)
       via  d0d1cdd71bb85b821be9b65be94819f3575b49ad (commit)
       via  af5ef0c96982be431791ea35d6de8798ffe70254 (commit)
      from  b998508ee607fd1b728c8f00eb502a99a4bc7be1 (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=ba03616b250dd1ce3c3d8d86cf3dd42ec5e525b0
commit ba03616b250dd1ce3c3d8d86cf3dd42ec5e525b0
Merge: b998508 d0d1cdd
Author: Zach Mullen <zach.mullen at kitware.com>
Date:   Thu Jun 10 15:05:10 2010 -0400

    Merge branch 'ctest-file-checksum' into next


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d0d1cdd71bb85b821be9b65be94819f3575b49ad
commit d0d1cdd71bb85b821be9b65be94819f3575b49ad
Author: Zach Mullen <zach.mullen at kitware.com>
Date:   Thu Jun 10 15:02:24 2010 -0400

    Mock checksum failure output for old CDash versions

diff --git a/Source/CTest/cmCTestSubmitHandler.cxx b/Source/CTest/cmCTestSubmitHandler.cxx
index 4ca382c..bfe515d 100644
--- a/Source/CTest/cmCTestSubmitHandler.cxx
+++ b/Source/CTest/cmCTestSubmitHandler.cxx
@@ -509,6 +509,19 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(const cmStdString& localprefix,
       // Now run off and do what you've been told!
       res = ::curl_easy_perform(curl);
 
+      if(cmSystemTools::IsOn(this->GetOption("InternalTest")) &&
+         cmSystemTools::VersionCompare(cmSystemTools::OP_LESS,
+         this->CTest->GetCDashVersion().c_str(), "1.7"))
+        {
+        // mock failure output for internal test case
+        std::string mock_output = "<cdash version=\"1.7.0\">\n"
+          "  <status>ERROR</status>\n"
+          "  <message>Checksum failed for file.</message>\n"
+          "</cdash>\n";
+        chunk.clear();
+        chunk.assign(mock_output.begin(), mock_output.end());
+        }
+
       if ( chunk.size() > 0 )
         {
         cmCTestLog(this->CTest, DEBUG, "CURL output: ["

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=af5ef0c96982be431791ea35d6de8798ffe70254
commit af5ef0c96982be431791ea35d6de8798ffe70254
Author: Zach Mullen <zach.mullen at kitware.com>
Date:   Thu Jun 10 12:25:49 2010 -0400

    Testing for CTest checksum

diff --git a/Source/CTest/cmCTestSubmitCommand.cxx b/Source/CTest/cmCTestSubmitCommand.cxx
index 6a45d58..24974e3 100644
--- a/Source/CTest/cmCTestSubmitCommand.cxx
+++ b/Source/CTest/cmCTestSubmitCommand.cxx
@@ -147,10 +147,12 @@ cmCTestGenericHandler* cmCTestSubmitCommand::InitializeHandler()
     static_cast<cmCTestSubmitHandler*>(handler)->SelectParts(this->Parts);
     }
 
-  static_cast<cmCTestSubmitHandler*>(handler)->SetOption("RetryTime",
+  static_cast<cmCTestSubmitHandler*>(handler)->SetOption("RetryDelay",
     this->RetryDelay.c_str());
   static_cast<cmCTestSubmitHandler*>(handler)->SetOption("RetryCount",
     this->RetryCount.c_str());
+  static_cast<cmCTestSubmitHandler*>(handler)->SetOption("InternalTest",
+    this->InternalTest ? "ON" : "OFF");
 
   return handler;
 }
@@ -186,6 +188,12 @@ bool cmCTestSubmitCommand::CheckArgumentKeyword(std::string const& arg)
     return true;
     }
 
+  if(arg == "INTERNAL_TEST_CHECKSUM")
+    {
+    this->InternalTest = true;
+    return true;
+    }
+
   // Look for other arguments.
   return this->Superclass::CheckArgumentKeyword(arg);
 }
@@ -233,11 +241,13 @@ bool cmCTestSubmitCommand::CheckArgumentValue(std::string const& arg)
   if(this->ArgumentDoing == ArgumentDoingRetryCount)
     {
     this->RetryCount = arg;
+    return true;
     }
 
   if(this->ArgumentDoing == ArgumentDoingRetryDelay)
     {
     this->RetryDelay = arg;
+    return true;
     }
 
   // Look for other arguments.
diff --git a/Source/CTest/cmCTestSubmitCommand.h b/Source/CTest/cmCTestSubmitCommand.h
index 5a80b45..edc9c65 100644
--- a/Source/CTest/cmCTestSubmitCommand.h
+++ b/Source/CTest/cmCTestSubmitCommand.h
@@ -29,6 +29,7 @@ public:
     {
     this->PartsMentioned = false;
     this->FilesMentioned = false;
+    this->InternalTest = false;
     this->RetryCount = "";
     this->RetryDelay = "";
     }
@@ -107,6 +108,7 @@ protected:
   bool PartsMentioned;
   std::set<cmCTest::Part> Parts;
   bool FilesMentioned;
+  bool InternalTest;
   cmCTest::SetOfStrings Files;
   std::string RetryCount;
   std::string RetryDelay;
diff --git a/Source/CTest/cmCTestSubmitHandler.cxx b/Source/CTest/cmCTestSubmitHandler.cxx
index 21c005d..4ca382c 100644
--- a/Source/CTest/cmCTestSubmitHandler.cxx
+++ b/Source/CTest/cmCTestSubmitHandler.cxx
@@ -452,11 +452,19 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(const cmStdString& localprefix,
         = url + ((url.find("?",0) == cmStdString::npos) ? "?" : "&")
         + "FileName=" + ofile;
 
-      char md5[33];
-      cmSystemTools::ComputeFileMD5(local_file.c_str(), md5);
-      md5[32] = 0;
       upload_as += "&MD5=";
-      upload_as += md5;
+
+      if(cmSystemTools::IsOn(this->GetOption("InternalTest")))
+        {
+        upload_as += "bad_md5sum";
+        }
+      else
+        {
+        char md5[33];
+        cmSystemTools::ComputeFileMD5(local_file.c_str(), md5);
+        md5[32] = 0;
+        upload_as += md5;
+        }
 
       struct stat st;
       if ( ::stat(local_file.c_str(), &st) )
@@ -518,23 +526,26 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(const cmStdString& localprefix,
       // If we time out or checksum fails, wait and retry
       if(res == CURLE_OPERATION_TIMEDOUT || this->HasErrors)
         {
-        std::string retryTime = this->GetOption("RetryTime") == NULL ?
-          "" : this->GetOption("RetryTime");
+        std::string retryDelay = this->GetOption("RetryDelay") == NULL ?
+          "" : this->GetOption("RetryDelay");
         std::string retryCount = this->GetOption("RetryCount") == NULL ?
           "" : this->GetOption("RetryCount");
 
-        int time = retryTime == "" ? atoi(this->CTest->GetCTestConfiguration(
-          "CTestSubmitRetryDelay").c_str()) : atoi(retryTime.c_str());
+        int delay = retryDelay == "" ? atoi(this->CTest->GetCTestConfiguration(
+          "CTestSubmitRetryDelay").c_str()) : atoi(retryDelay.c_str());
         int count = retryCount == "" ? atoi(this->CTest->GetCTestConfiguration(
           "CTestSubmitRetryCount").c_str()) : atoi(retryCount.c_str());
 
         for(int i = 0; i < count; i++)
           {
           cmCTestLog(this->CTest, HANDLER_OUTPUT,
-            "   Connection timed out, waiting " << time << " seconds...\n");
+            "   Connection timed out, waiting " << delay << " seconds...\n");
 
-          double stop = cmSystemTools::GetTime() + time;
-          while(cmSystemTools::GetTime() < stop) {} //wait <time> seconds
+          double stop = cmSystemTools::GetTime() + delay;
+          while(cmSystemTools::GetTime() < stop)
+            {
+            cmSystemTools::Delay(100);
+            }
 
           cmCTestLog(this->CTest, HANDLER_OUTPUT,
             "   Retry submission: Attempt " << (i + 1) << " of "
@@ -622,23 +633,20 @@ void cmCTestSubmitHandler
       return;
       }
     }
-  else
+  output = cmSystemTools::UpperCase(output);
+  if(output.find("WARNING") != std::string::npos)
     {
-    output = cmSystemTools::UpperCase(output);
-    if(output.find("WARNING") != std::string::npos)
-      {
-      this->HasWarnings = true;
-      }
-    if(output.find("ERROR") != std::string::npos)
-      {
-      this->HasErrors = true;
-      }
+    this->HasWarnings = true;
+    }
+  if(output.find("ERROR") != std::string::npos)
+    {
+    this->HasErrors = true;
+    }
 
-    if(this->HasWarnings || this->HasErrors)
-      {
-      cmCTestLog(this->CTest, HANDLER_OUTPUT, "   Server Response:\n" <<
-            cmCTestLogWrite(&*chunk.begin(), chunk.size()) << "\n");
-      }
+  if(this->HasWarnings || this->HasErrors)
+    {
+    cmCTestLog(this->CTest, HANDLER_OUTPUT, "   Server Response:\n" <<
+          cmCTestLogWrite(&*chunk.begin(), chunk.size()) << "\n");
     }
 }
 
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 330cf9f..c1cc8b8 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -1449,6 +1449,17 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
       --output-log "${CMake_BINARY_DIR}/Tests/CTestTest3/testOutput.log"
       )
 
+    CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTestChecksum/test.cmake.in"
+      "${CMake_BINARY_DIR}/Tests/CTestTestChecksum/test.cmake" @ONLY
+      ESCAPE_QUOTES)
+    ADD_TEST(CTestTestChecksum ${CMAKE_CTEST_COMMAND}
+      -S "${CMake_BINARY_DIR}/Tests/CTestTestChecksum/test.cmake" -V
+      --output-log
+      "${CMake_BINARY_DIR}/Tests/CTestTestChecksum/testOutput.log"
+      )
+    SET_TESTS_PROPERTIES(CTestTestChecksum PROPERTIES PASS_REGULAR_EXPRESSION
+      "Submission failed: Checksum failed for file")
+
     # these tests take a long time, make sure they have it
     # if timeouts have not already been set
     GET_TEST_PROPERTY(CTestTest TIMEOUT PREVIOUS_TIMEOUT)
diff --git a/Tests/CTestTest3/test.cmake.in b/Tests/CTestTest3/test.cmake.in
index 9819235..1e8ea50 100644
--- a/Tests/CTestTest3/test.cmake.in
+++ b/Tests/CTestTest3/test.cmake.in
@@ -113,7 +113,7 @@ IF(svncommand)
   CTEST_TEST(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res PARALLEL_LEVEL 5 SCHEDULE_RANDOM ON)
   CTEST_MEMCHECK(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res PARALLEL_LEVEL 5)
   CTEST_COVERAGE(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res)
-  CTEST_SUBMIT(RETRY_COUNT 4 RETRY_DELAY 10 RETURN_VALUE res)
+  CTEST_SUBMIT(RETURN_VALUE res)
 
 ELSE(svncommand)
   MESSAGE("Cannot find SVN command: ${svncommand}")
diff --git a/Tests/CTestTestChecksum/test.cmake.in b/Tests/CTestTestChecksum/test.cmake.in
new file mode 100644
index 0000000..7ef8ab2
--- /dev/null
+++ b/Tests/CTestTestChecksum/test.cmake.in
@@ -0,0 +1,23 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.1)
+
+# Settings:
+SET(CTEST_DASHBOARD_ROOT                "@CMake_BINARY_DIR@/Tests/CTestTest")
+SET(CTEST_SITE                          "@SITE@")
+SET(CTEST_BUILD_NAME                    "CTestTest- at BUILDNAME@-Checksum")
+
+SET(CTEST_SOURCE_DIRECTORY              "@CMake_SOURCE_DIR@/Tests/CTestTestParallel")
+SET(CTEST_BINARY_DIRECTORY              "@CMake_BINARY_DIR@/Tests/CTestTestParallel")
+SET(CTEST_CVS_COMMAND                   "@CVSCOMMAND@")
+SET(CTEST_CMAKE_GENERATOR               "@CMAKE_TEST_GENERATOR@")
+SET(CTEST_BUILD_CONFIGURATION           "$ENV{CMAKE_CONFIG_TYPE}")
+SET(CTEST_MEMORYCHECK_COMMAND           "@MEMORYCHECK_COMMAND@")
+SET(CTEST_MEMORYCHECK_SUPPRESSIONS_FILE "@MEMORYCHECK_SUPPRESSIONS_FILE@")
+SET(CTEST_MEMORYCHECK_COMMAND_OPTIONS   "@MEMORYCHECK_COMMAND_OPTIONS@")
+SET(CTEST_COVERAGE_COMMAND              "@COVERAGE_COMMAND@")
+SET(CTEST_NOTES_FILES                   "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}")
+
+CTEST_START(Experimental)
+CTEST_CONFIGURE(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res)
+CTEST_BUILD(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res)
+CTEST_TEST(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res PARALLEL_LEVEL 4)
+CTEST_SUBMIT(RETRY_DELAY 3 RETRY_COUNT 2 INTERNAL_TEST_CHECKSUM RETURN_VALUE res)

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

Summary of changes:
 Source/CTest/cmCTestSubmitCommand.cxx              |   12 +++-
 Source/CTest/cmCTestSubmitCommand.h                |    2 +
 Source/CTest/cmCTestSubmitHandler.cxx              |   73 +++++++++++++-------
 Tests/CMakeLists.txt                               |   11 +++
 Tests/CTestTest3/test.cmake.in                     |    2 +-
 .../test.cmake.in                                  |    5 +-
 6 files changed, 74 insertions(+), 31 deletions(-)
 copy Tests/{CTestTestParallel => CTestTestChecksum}/test.cmake.in (87%)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list