summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-07-25 15:02:56 (GMT)
committerKitware Robot <kwrobot@kitware.com>2023-07-25 15:03:05 (GMT)
commitd89bcc8891db7d3d3fc69086db3bc57d3b6fa129 (patch)
tree66333a79460eace7f245596fe76a7d3cc92b8a98
parent1e085cbff7059cd38ebea0bca8cb414fd30c2d06 (diff)
parentb7c871f7459ef18f863d8fea15eae7e7f85a9d34 (diff)
downloadCMake-d89bcc8891db7d3d3fc69086db3bc57d3b6fa129.zip
CMake-d89bcc8891db7d3d3fc69086db3bc57d3b6fa129.tar.gz
CMake-d89bcc8891db7d3d3fc69086db3bc57d3b6fa129.tar.bz2
Merge topic 'cdash_checksum_400' into release-3.27
b7c871f745 ctest: Update ctest_submit for CDash behavior change Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8648
-rw-r--r--Source/CTest/cmCTestSubmitHandler.cxx21
-rw-r--r--Tests/CMakeLists.txt2
2 files changed, 13 insertions, 10 deletions
diff --git a/Source/CTest/cmCTestSubmitHandler.cxx b/Source/CTest/cmCTestSubmitHandler.cxx
index a095e5d..7d4b0a8 100644
--- a/Source/CTest/cmCTestSubmitHandler.cxx
+++ b/Source/CTest/cmCTestSubmitHandler.cxx
@@ -143,7 +143,6 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(
const std::string& remoteprefix, const std::string& url)
{
CURL* curl;
- CURLcode res;
FILE* ftpfile;
char error_buffer[1024];
// Set Content-Type to satisfy fussy modsecurity rules.
@@ -211,8 +210,6 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(
if (this->CTest->ShouldUseHTTP10()) {
curl_easy_setopt(curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
}
- // enable HTTP ERROR parsing
- curl_easy_setopt(curl, CURLOPT_FAILONERROR, 1);
/* enable uploading */
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1);
@@ -286,7 +283,7 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(
upload_as += "&MD5=";
if (cmIsOn(this->GetOption("InternalTest"))) {
- upload_as += "bad_md5sum";
+ upload_as += "ffffffffffffffffffffffffffffffff";
} else {
upload_as +=
cmSystemTools::ComputeFileHash(local_file, cmCryptoHash::AlgoMD5);
@@ -338,7 +335,7 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(
::curl_easy_setopt(curl, CURLOPT_DEBUGDATA, &chunkDebug);
// Now run off and do what you've been told!
- res = ::curl_easy_perform(curl);
+ ::curl_easy_perform(curl);
if (!chunk.empty()) {
cmCTestOptionalLog(this->CTest, DEBUG,
@@ -359,7 +356,11 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(
// If curl failed for any reason, or checksum fails, wait and retry
//
- if (res != CURLE_OK || this->HasErrors) {
+ long response_code;
+ curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
+ bool successful_submission = response_code == 200;
+
+ if (!successful_submission || this->HasErrors) {
std::string retryDelay = *this->GetOption("RetryDelay");
std::string retryCount = *this->GetOption("RetryCount");
@@ -397,7 +398,7 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(
chunkDebug.clear();
this->HasErrors = false;
- res = ::curl_easy_perform(curl);
+ ::curl_easy_perform(curl);
if (!chunk.empty()) {
cmCTestOptionalLog(this->CTest, DEBUG,
@@ -408,14 +409,16 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(
this->ParseResponse(chunk);
}
- if (res == CURLE_OK && !this->HasErrors) {
+ curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
+ if (response_code == 200 && !this->HasErrors) {
+ successful_submission = true;
break;
}
}
}
fclose(ftpfile);
- if (res) {
+ if (!successful_submission) {
cmCTestLog(this->CTest, ERROR_MESSAGE,
" Error when uploading file: " << local_file
<< std::endl);
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 53bb1e6..19dea8f 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -3290,7 +3290,7 @@ if(BUILD_TESTING)
"${CMake_BINARY_DIR}/Tests/CTestTestChecksum/testOutput.log"
)
set_tests_properties(CTestTestChecksum PROPERTIES PASS_REGULAR_EXPRESSION
- "Submission failed: Checksum failed for file")
+ "md5 mismatch")
# these tests take a long time, make sure they have it
# if timeouts have not already been set