file(DOWNLOAD EXPECTED_HASH): better error message when download failed

This commit is contained in:
Aurelien Regat-Barrel
2022-11-09 12:03:11 +01:00
parent 9758dbd9d4
commit 8c3cf2716a
2 changed files with 9 additions and 6 deletions

View File

@@ -2107,6 +2107,14 @@ bool HandleDownloadCommand(std::vector<std::string> const& args,
// Verify MD5 sum if requested:
//
if (hash) {
if (res != CURLE_OK) {
status.SetError(cmStrCat(
"DOWNLOAD cannot compute hash on failed download\n"
" status: [",
static_cast<int>(res), ";\"", ::curl_easy_strerror(res), "\"]"));
return false;
}
std::string actualHash = hash->HashFile(file);
if (actualHash.empty()) {
status.SetError("DOWNLOAD cannot compute hash on downloaded file");
@@ -2130,11 +2138,7 @@ bool HandleDownloadCommand(std::vector<std::string> const& args,
expectedHash,
"]\n"
" actual hash: [",
actualHash,
"]\n"
" status: [",
static_cast<int>(res), ";\"",
::curl_easy_strerror(res), "\"]\n"));
actualHash, "]\n"));
return false;
}
}

View File

@@ -4,7 +4,6 @@
for file: \[.*/Tests/RunCMake/file/DOWNLOAD-hash-mismatch-build/hash-mismatch.txt\]
expected hash: \[0123456789abcdef0123456789abcdef01234567\]
actual hash: \[da39a3ee5e6b4b0d3255bfef95601890afd80709\]
status: \[0;"No error"\]
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)