Pārlūkot izejas kodu

ctest_submit: show headers as debug info

Hide any headers specified by `ctest_submit(HTTPHEADER ...)` unless ctest
is run with --debug.  This option is used to present bearer tokens to CDash.
We do not want to inadvertently expose this secret data in the console
output log.
Zack Galbreath 7 gadi atpakaļ
vecāks
revīzija
71f27c04b0

+ 2 - 2
Source/CTest/cmCTestCurl.cxx

@@ -148,7 +148,7 @@ bool cmCTestCurl::UploadFile(std::string const& local_file,
     ::curl_slist_append(nullptr, "Content-Type: text/xml");
   // Add any additional headers that the user specified.
   for (std::string const& h : this->HttpHeaders) {
-    cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT,
+    cmCTestOptionalLog(this->CTest, DEBUG,
                        "   Add HTTP Header: \"" << h << "\"" << std::endl,
                        this->Quiet);
     headers = ::curl_slist_append(headers, h.c_str());
@@ -216,7 +216,7 @@ bool cmCTestCurl::HttpRequest(std::string const& url,
   struct curl_slist* headers = nullptr;
   if (!this->HttpHeaders.empty()) {
     for (std::string const& h : this->HttpHeaders) {
-      cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT,
+      cmCTestOptionalLog(this->CTest, DEBUG,
                          "   Add HTTP Header: \"" << h << "\"" << std::endl,
                          this->Quiet);
       headers = ::curl_slist_append(headers, h.c_str());

+ 1 - 1
Source/CTest/cmCTestSubmitHandler.cxx

@@ -314,7 +314,7 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(const std::string& localprefix,
 
   // Add any additional headers that the user specified.
   for (std::string const& h : this->HttpHeaders) {
-    cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT,
+    cmCTestOptionalLog(this->CTest, DEBUG,
                        "   Add HTTP Header: \"" << h << "\"" << std::endl,
                        this->Quiet);
     headers = ::curl_slist_append(headers, h.c_str());

+ 0 - 2
Tests/RunCMake/ctest_submit/CDashSubmitHeaders-stderr.txt

@@ -1,3 +1 @@
- *Error when uploading file: .*/Configure.xml
  *Error message was: ([Cc]ould *n.t resolve host:? '?-no-site-'?.*|The requested URL returned error:.*)
- *Problems when submitting via HTTP

+ 9 - 4
Tests/RunCMake/ctest_submit/RunCMakeTest.cmake

@@ -5,14 +5,19 @@ set(CASE_DROP_METHOD "http")
 set(CASE_DROP_SITE "-no-site-")
 set(CASE_CTEST_SUBMIT_ARGS "")
 
-#-----------------------------------------------------------------------------
-# Test bad argument combinations.
 
 function(run_ctest_submit CASE_NAME)
   set(CASE_CTEST_SUBMIT_ARGS "${ARGN}")
   run_ctest(${CASE_NAME})
 endfunction()
 
+function(run_ctest_submit_debug CASE_NAME)
+  set(CASE_CTEST_SUBMIT_ARGS "${ARGN}")
+  run_ctest(${CASE_NAME} "--debug")
+endfunction()
+
+#-----------------------------------------------------------------------------
+# Test bad argument combinations.
 run_ctest_submit(BadArg bad-arg)
 run_ctest_submit(BadPARTS PARTS bad-part)
 run_ctest_submit(BadFILES FILES bad-file)
@@ -25,8 +30,8 @@ run_ctest_submit(CDashUploadNone CDASH_UPLOAD)
 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(CDashSubmitHeaders HTTPHEADER "Authorization: Bearer asdf")
-run_ctest_submit(CDashUploadHeaders CDASH_UPLOAD ${CMAKE_CURRENT_LIST_FILE} CDASH_UPLOAD_TYPE foo HTTPHEADER "Authorization: Bearer asdf")
+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")
 
 function(run_ctest_CDashUploadFTP)
   set(CASE_DROP_METHOD ftp)