Merge topic 'file-download-status-hash-mismatch'

6c9586f9 file(DOWNLOAD): Fill STATUS variable on hash mismatch (#15987)
This commit is contained in:
Brad King 2016-02-26 10:31:24 -05:00 committed by CMake Topic Stage
commit cc7a1b1941
6 changed files with 30 additions and 0 deletions

View File

@ -3300,6 +3300,15 @@ cmFileCommand::HandleDownloadCommand(std::vector<std::string> const& args)
<< " status: [" << (int)res << ";\""
<< ::curl_easy_strerror(res) << "\"]" << std::endl
;
if(!statusVar.empty() && res == 0)
{
std::string status = "1;HASH mismatch: "
"expected: " + expectedHash +
" actual: " + actualHash;
this->Makefile->AddDefinition(statusVar, status.c_str());
}
this->SetError(oss.str());
return false;
}

View File

@ -0,0 +1 @@
1

View File

@ -0,0 +1,12 @@
^CMake Error at DOWNLOAD-hash-mismatch.cmake:[0-9]+ \(file\):
file DOWNLOAD HASH mismatch
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\)
+
status='1;HASH mismatch: expected: 0123456789abcdef0123456789abcdef01234567 actual: da39a3ee5e6b4b0d3255bfef95601890afd80709'$

View File

@ -0,0 +1,7 @@
file(DOWNLOAD
"file://${CMAKE_CURRENT_SOURCE_DIR}/DOWNLOAD-hash-mismatch.txt"
${CMAKE_CURRENT_BINARY_DIR}/hash-mismatch.txt
EXPECTED_HASH SHA1=0123456789abcdef0123456789abcdef01234567
STATUS status
)
message("status='${status}'")

View File

@ -1,5 +1,6 @@
include(RunCMake)
run_cmake(DOWNLOAD-hash-mismatch)
run_cmake(INSTALL-DIRECTORY)
run_cmake(INSTALL-MESSAGE-bad)
run_cmake(FileOpenFailRead)