ctest: only create buildid when submitting from Testing/ dir
In 7f530cc
we taught CTest to pass extra information to CDash at submit
time. This extra info is used by CDash to initialize a buildid.
`ctest_submit(FILES)` can be used to send specific files to CDash.
These files are not necessarily associated with the build currently
being performed. For this reason, we modify the behavior of ctest_submit()
to only specify this extra info when we are submitting files from the
current build's Testing directory.
This commit is contained in:
parent
8bb0e09e38
commit
c49d13f94b
@ -392,8 +392,12 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(const std::string& localprefix,
|
||||
::curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
|
||||
|
||||
std::string local_file = file;
|
||||
bool initialize_cdash_buildid = false;
|
||||
if (!cmSystemTools::FileExists(local_file)) {
|
||||
local_file = localprefix + "/" + file;
|
||||
// If this file exists within the local Testing directory we assume
|
||||
// that it will be associated with the current build in CDash.
|
||||
initialize_cdash_buildid = true;
|
||||
}
|
||||
std::string remote_file =
|
||||
remoteprefix + cmSystemTools::GetFilenameName(file);
|
||||
@ -425,26 +429,30 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(const std::string& localprefix,
|
||||
((url.find('?') == std::string::npos) ? '?' : '&') +
|
||||
"FileName=" + ofile;
|
||||
|
||||
cmCTestCurl ctest_curl(this->CTest);
|
||||
upload_as += "&build=";
|
||||
upload_as +=
|
||||
ctest_curl.Escape(this->CTest->GetCTestConfiguration("BuildName"));
|
||||
upload_as += "&site=";
|
||||
upload_as +=
|
||||
ctest_curl.Escape(this->CTest->GetCTestConfiguration("Site"));
|
||||
upload_as += "&stamp=";
|
||||
upload_as += ctest_curl.Escape(this->CTest->GetCurrentTag());
|
||||
upload_as += "-";
|
||||
upload_as += ctest_curl.Escape(this->CTest->GetTestModelString());
|
||||
cmCTestScriptHandler* ch =
|
||||
static_cast<cmCTestScriptHandler*>(this->CTest->GetHandler("script"));
|
||||
cmake* cm = ch->GetCMake();
|
||||
if (cm) {
|
||||
const char* subproject =
|
||||
cm->GetState()->GetGlobalProperty("SubProject");
|
||||
if (subproject) {
|
||||
upload_as += "&subproject=";
|
||||
upload_as += ctest_curl.Escape(subproject);
|
||||
if (initialize_cdash_buildid) {
|
||||
// Provide extra arguments to CDash so that it can initialize and
|
||||
// return a buildid.
|
||||
cmCTestCurl ctest_curl(this->CTest);
|
||||
upload_as += "&build=";
|
||||
upload_as +=
|
||||
ctest_curl.Escape(this->CTest->GetCTestConfiguration("BuildName"));
|
||||
upload_as += "&site=";
|
||||
upload_as +=
|
||||
ctest_curl.Escape(this->CTest->GetCTestConfiguration("Site"));
|
||||
upload_as += "&stamp=";
|
||||
upload_as += ctest_curl.Escape(this->CTest->GetCurrentTag());
|
||||
upload_as += "-";
|
||||
upload_as += ctest_curl.Escape(this->CTest->GetTestModelString());
|
||||
cmCTestScriptHandler* ch = static_cast<cmCTestScriptHandler*>(
|
||||
this->CTest->GetHandler("script"));
|
||||
cmake* cm = ch->GetCMake();
|
||||
if (cm) {
|
||||
const char* subproject =
|
||||
cm->GetState()->GetGlobalProperty("SubProject");
|
||||
if (subproject) {
|
||||
upload_as += "&subproject=";
|
||||
upload_as += ctest_curl.Escape(subproject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
1
Tests/RunCMake/ctest_submit/FILESNoBuildId-result.txt
Normal file
1
Tests/RunCMake/ctest_submit/FILESNoBuildId-result.txt
Normal file
@ -0,0 +1 @@
|
||||
(-1|255)
|
1
Tests/RunCMake/ctest_submit/FILESNoBuildId-stderr.txt
Normal file
1
Tests/RunCMake/ctest_submit/FILESNoBuildId-stderr.txt
Normal file
@ -0,0 +1 @@
|
||||
*Error message was: ([Cc]ould *n.t resolve host:? '?-no-site-'?.*|The requested URL returned error:.*)
|
1
Tests/RunCMake/ctest_submit/FILESNoBuildId-stdout.txt
Normal file
1
Tests/RunCMake/ctest_submit/FILESNoBuildId-stdout.txt
Normal file
@ -0,0 +1 @@
|
||||
Upload file: .* to http:\/\/-no-site-\?FileName=test-site___test-build-name___.*-Experimental___XML___RunCMakeTest.cmake&MD5=.* Size: .*
|
@ -31,6 +31,7 @@ run_ctest_submit(CDashUploadMissingFile CDASH_UPLOAD bad-upload)
|
||||
run_ctest_submit(CDashUploadRetry CDASH_UPLOAD ${CMAKE_CURRENT_LIST_FILE} CDASH_UPLOAD_TYPE foo RETRY_COUNT 2 RETRY_DELAY 1 INTERNAL_TEST_CHECKSUM)
|
||||
run_ctest_submit(CDashSubmitQuiet QUIET)
|
||||
run_ctest_submit_debug(CDashSubmitVerbose)
|
||||
run_ctest_submit_debug(FILESNoBuildId FILES ${CMAKE_CURRENT_LIST_FILE})
|
||||
run_ctest_submit_debug(CDashSubmitHeaders HTTPHEADER "Authorization: Bearer asdf")
|
||||
run_ctest_submit_debug(CDashUploadHeaders CDASH_UPLOAD ${CMAKE_CURRENT_LIST_FILE} CDASH_UPLOAD_TYPE foo HTTPHEADER "Authorization: Bearer asdf")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user