|
|
@@ -72,6 +72,8 @@ void cmCTestSubmitHandler::Initialize()
|
|
|
this->SubmitPart[p] = true;
|
|
|
}
|
|
|
this->CDash = false;
|
|
|
+ this->HasWarnings = false;
|
|
|
+ this->HasErrors = false;
|
|
|
this->Superclass::Initialize();
|
|
|
this->HTTPProxy = "";
|
|
|
this->HTTPProxyType = 0;
|
|
|
@@ -309,7 +311,12 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(const cmStdString& localprefix,
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ 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);
|
|
|
|
|
|
@@ -409,6 +416,7 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(const cmStdString& localprefix,
|
|
|
cmCTestLog(this->CTest, DEBUG, "CURL output: ["
|
|
|
<< cmCTestLogWrite(&*chunk.begin(), chunk.size()) << "]"
|
|
|
<< std::endl);
|
|
|
+ this->ParseResponse(chunk);
|
|
|
}
|
|
|
if ( chunkDebug.size() > 0 )
|
|
|
{
|
|
|
@@ -454,6 +462,36 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(const cmStdString& localprefix,
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+//----------------------------------------------------------------------------
|
|
|
+void cmCTestSubmitHandler
|
|
|
+::ParseResponse(cmCTestSubmitHandlerVectorOfChar chunk)
|
|
|
+{
|
|
|
+ std::string output = "";
|
|
|
+
|
|
|
+ for(cmCTestSubmitHandlerVectorOfChar::iterator i = chunk.begin();
|
|
|
+ i != chunk.end(); ++i)
|
|
|
+ {
|
|
|
+ output += *i;
|
|
|
+ }
|
|
|
+ output = cmSystemTools::UpperCase(output);
|
|
|
+
|
|
|
+ if(output.find("WARNING") != std::string::npos)
|
|
|
+ {
|
|
|
+ this->HasWarnings = true;
|
|
|
+ }
|
|
|
+ if(output.find("ERROR") != std::string::npos)
|
|
|
+ {
|
|
|
+ this->HasErrors = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(this->HasWarnings || this->HasErrors)
|
|
|
+ {
|
|
|
+ cmCTestLog(this->CTest, HANDLER_OUTPUT, " Server Response:\n" <<
|
|
|
+ cmCTestLogWrite(&*chunk.begin(), chunk.size()) << "\n");
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
//----------------------------------------------------------------------------
|
|
|
bool cmCTestSubmitHandler::TriggerUsingHTTP(
|
|
|
const std::set<cmStdString>& files,
|
|
|
@@ -1149,9 +1187,20 @@ int cmCTestSubmitHandler::ProcessHandler()
|
|
|
return -1;
|
|
|
}
|
|
|
}
|
|
|
- cmCTestLog(this->CTest, HANDLER_OUTPUT, " Submission successful"
|
|
|
- << std::endl);
|
|
|
- ofs << " Submission successful" << std::endl;
|
|
|
+ if(this->HasErrors)
|
|
|
+ {
|
|
|
+ cmCTestLog(this->CTest, HANDLER_OUTPUT, " Errors occurred during "
|
|
|
+ "submission." << std::endl);
|
|
|
+ ofs << " Errors occurred during submission. " << std::endl;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ cmCTestLog(this->CTest, HANDLER_OUTPUT, " Submission successful" <<
|
|
|
+ (this->HasWarnings ? ", with warnings." : "") << std::endl);
|
|
|
+ ofs << " Submission successful" <<
|
|
|
+ (this->HasWarnings ? ", with warnings." : "") << std::endl;
|
|
|
+ }
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
else if ( dropMethod == "xmlrpc" )
|