ENH: Add logging of submitting
This commit is contained in:
parent
3e0817eb55
commit
dd9241121d
@ -142,6 +142,8 @@ bool cmCTestSubmit::SubmitUsingFTP(const cmStdString& localprefix,
|
|||||||
}
|
}
|
||||||
|
|
||||||
ftpfile = ::fopen(local_file.c_str(), "rb");
|
ftpfile = ::fopen(local_file.c_str(), "rb");
|
||||||
|
*m_LogFile << "\tUpload file: " << local_file.c_str() << " to "
|
||||||
|
<< upload_as.c_str() << std::endl;
|
||||||
if ( m_Verbose )
|
if ( m_Verbose )
|
||||||
{
|
{
|
||||||
std::cout << " Upload file: " << local_file.c_str() << " to "
|
std::cout << " Upload file: " << local_file.c_str() << " to "
|
||||||
@ -170,6 +172,8 @@ bool cmCTestSubmit::SubmitUsingFTP(const cmStdString& localprefix,
|
|||||||
{
|
{
|
||||||
std::cout << " Error when uploading file: " << local_file.c_str() << std::endl;
|
std::cout << " Error when uploading file: " << local_file.c_str() << std::endl;
|
||||||
std::cout << " Error message was: " << error_buffer << std::endl;
|
std::cout << " Error message was: " << error_buffer << std::endl;
|
||||||
|
*m_LogFile << " Error when uploading file: " << local_file.c_str() << std::endl
|
||||||
|
<< " Error message was: " << error_buffer << std::endl;
|
||||||
::curl_easy_cleanup(curl);
|
::curl_easy_cleanup(curl);
|
||||||
::curl_global_cleanup();
|
::curl_global_cleanup();
|
||||||
return false;
|
return false;
|
||||||
@ -192,6 +196,7 @@ bool cmCTestSubmit::SubmitUsingHTTP(const cmStdString& localprefix,
|
|||||||
CURL *curl;
|
CURL *curl;
|
||||||
CURLcode res;
|
CURLcode res;
|
||||||
FILE* ftpfile;
|
FILE* ftpfile;
|
||||||
|
char error_buffer[1024];
|
||||||
|
|
||||||
/* In windows, this will init the winsock stuff */
|
/* In windows, this will init the winsock stuff */
|
||||||
::curl_global_init(CURL_GLOBAL_ALL);
|
::curl_global_init(CURL_GLOBAL_ALL);
|
||||||
@ -233,6 +238,10 @@ bool cmCTestSubmit::SubmitUsingHTTP(const cmStdString& localprefix,
|
|||||||
|
|
||||||
cmStdString local_file = localprefix + "/" + files[cc];
|
cmStdString local_file = localprefix + "/" + files[cc];
|
||||||
cmStdString remote_file = remoteprefix + files[cc];
|
cmStdString remote_file = remoteprefix + files[cc];
|
||||||
|
|
||||||
|
*m_LogFile << "\tUpload file: " << local_file.c_str() << " to "
|
||||||
|
<< remote_file.c_str() << std::endl;
|
||||||
|
|
||||||
cmStdString ofile = "";
|
cmStdString ofile = "";
|
||||||
for ( kk = 0; kk < remote_file.size(); kk ++ )
|
for ( kk = 0; kk < remote_file.size(); kk ++ )
|
||||||
{
|
{
|
||||||
@ -281,6 +290,9 @@ bool cmCTestSubmit::SubmitUsingHTTP(const cmStdString& localprefix,
|
|||||||
// and give the size of the upload (optional)
|
// and give the size of the upload (optional)
|
||||||
::curl_easy_setopt(curl, CURLOPT_INFILESIZE, static_cast<long>(st.st_size));
|
::curl_easy_setopt(curl, CURLOPT_INFILESIZE, static_cast<long>(st.st_size));
|
||||||
|
|
||||||
|
// and give curl the buffer for errors
|
||||||
|
::curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, &error_buffer);
|
||||||
|
|
||||||
// Now run off and do what you've been told!
|
// Now run off and do what you've been told!
|
||||||
res = ::curl_easy_perform(curl);
|
res = ::curl_easy_perform(curl);
|
||||||
|
|
||||||
@ -288,6 +300,8 @@ bool cmCTestSubmit::SubmitUsingHTTP(const cmStdString& localprefix,
|
|||||||
if ( res )
|
if ( res )
|
||||||
{
|
{
|
||||||
std::cout << " Error when uploading file: " << local_file.c_str() << std::endl;
|
std::cout << " Error when uploading file: " << local_file.c_str() << std::endl;
|
||||||
|
*m_LogFile << " Error when uploading file: " << local_file.c_str() << std::endl
|
||||||
|
<< " Error message was: " << error_buffer << std::endl;
|
||||||
::curl_easy_cleanup(curl);
|
::curl_easy_cleanup(curl);
|
||||||
::curl_global_cleanup();
|
::curl_global_cleanup();
|
||||||
return false;
|
return false;
|
||||||
@ -306,6 +320,7 @@ bool cmCTestSubmit::TriggerUsingHTTP(const std::vector<cmStdString>& files,
|
|||||||
const cmStdString& url)
|
const cmStdString& url)
|
||||||
{
|
{
|
||||||
CURL *curl;
|
CURL *curl;
|
||||||
|
char error_buffer[1024];
|
||||||
|
|
||||||
/* In windows, this will init the winsock stuff */
|
/* In windows, this will init the winsock stuff */
|
||||||
::curl_global_init(CURL_GLOBAL_ALL);
|
::curl_global_init(CURL_GLOBAL_ALL);
|
||||||
@ -339,6 +354,10 @@ bool cmCTestSubmit::TriggerUsingHTTP(const std::vector<cmStdString>& files,
|
|||||||
{
|
{
|
||||||
::curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
|
::curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// and give curl the buffer for errors
|
||||||
|
::curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, &error_buffer);
|
||||||
|
|
||||||
cmStdString file = remoteprefix + files[cc];
|
cmStdString file = remoteprefix + files[cc];
|
||||||
cmStdString ofile = "";
|
cmStdString ofile = "";
|
||||||
for ( kk = 0; kk < file.size(); kk ++ )
|
for ( kk = 0; kk < file.size(); kk ++ )
|
||||||
@ -364,6 +383,7 @@ bool cmCTestSubmit::TriggerUsingHTTP(const std::vector<cmStdString>& files,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
cmStdString turl = url + "?xmlfile=" + ofile;
|
cmStdString turl = url + "?xmlfile=" + ofile;
|
||||||
|
*m_LogFile << "Trigger url: " << turl.c_str() << std::endl;
|
||||||
if ( m_Verbose )
|
if ( m_Verbose )
|
||||||
{
|
{
|
||||||
std::cout << " Trigger url: " << turl.c_str() << std::endl;
|
std::cout << " Trigger url: " << turl.c_str() << std::endl;
|
||||||
@ -372,6 +392,7 @@ bool cmCTestSubmit::TriggerUsingHTTP(const std::vector<cmStdString>& files,
|
|||||||
if ( curl_easy_perform(curl) )
|
if ( curl_easy_perform(curl) )
|
||||||
{
|
{
|
||||||
std::cout << " Error when triggering: " << turl.c_str() << std::endl;
|
std::cout << " Error when triggering: " << turl.c_str() << std::endl;
|
||||||
|
*m_LogFile << "\tTrigerring failed with error: " << error_buffer << std::endl;
|
||||||
::curl_easy_cleanup(curl);
|
::curl_easy_cleanup(curl);
|
||||||
::curl_global_cleanup();
|
::curl_global_cleanup();
|
||||||
return false;
|
return false;
|
||||||
|
@ -29,7 +29,7 @@ class cmCTestSubmit
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
cmCTestSubmit();
|
cmCTestSubmit();
|
||||||
~cmCTestSubmit() {}
|
~cmCTestSubmit() { m_LogFile = 0; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set verbosity of send
|
* Set verbosity of send
|
||||||
@ -38,6 +38,8 @@ public:
|
|||||||
void VerboseOn() { this->SetVerbose(1); }
|
void VerboseOn() { this->SetVerbose(1); }
|
||||||
void VerboseOff() { this->SetVerbose(0); }
|
void VerboseOff() { this->SetVerbose(0); }
|
||||||
|
|
||||||
|
void SetLogFile(std::ostream* ost) { m_LogFile = ost; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Submit file using various ways
|
* Submit file using various ways
|
||||||
*/
|
*/
|
||||||
@ -59,11 +61,12 @@ public:
|
|||||||
const cmStdString& url);
|
const cmStdString& url);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
cmStdString m_HTTPProxy;
|
cmStdString m_HTTPProxy;
|
||||||
int m_HTTPProxyType;
|
int m_HTTPProxyType;
|
||||||
cmStdString m_FTPProxy;
|
cmStdString m_FTPProxy;
|
||||||
int m_FTPProxyType;
|
int m_FTPProxyType;
|
||||||
bool m_Verbose;
|
bool m_Verbose;
|
||||||
|
std::ostream* m_LogFile;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -2442,6 +2442,9 @@ int cmCTest::TestDirectory(bool memcheck)
|
|||||||
|
|
||||||
int cmCTest::SubmitResults()
|
int cmCTest::SubmitResults()
|
||||||
{
|
{
|
||||||
|
std::ofstream ofs;
|
||||||
|
this->OpenOutputFile("Temporary", "LastSubmit.log", ofs);
|
||||||
|
|
||||||
cmCTest::tm_VectorOfStrings files;
|
cmCTest::tm_VectorOfStrings files;
|
||||||
std::string prefix = this->GetSubmitResultsPrefix();
|
std::string prefix = this->GetSubmitResultsPrefix();
|
||||||
// TODO:
|
// TODO:
|
||||||
@ -2497,11 +2500,25 @@ int cmCTest::SubmitResults()
|
|||||||
{
|
{
|
||||||
files.push_back("Notes.xml");
|
files.push_back("Notes.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( ofs )
|
||||||
|
{
|
||||||
|
ofs << "Upload files:" << std::endl;
|
||||||
|
int cnt = 0;
|
||||||
|
cmCTest::tm_VectorOfStrings::iterator it;
|
||||||
|
for ( it = files.begin(); it != files.end(); ++ it )
|
||||||
|
{
|
||||||
|
ofs << cnt << "\t" << it->c_str() << std::endl;
|
||||||
|
cnt ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
cmCTestSubmit submit;
|
cmCTestSubmit submit;
|
||||||
submit.SetVerbose(m_Verbose);
|
submit.SetVerbose(m_Verbose);
|
||||||
|
submit.SetLogFile(&ofs);
|
||||||
if ( m_DartConfiguration["DropMethod"] == "" ||
|
if ( m_DartConfiguration["DropMethod"] == "" ||
|
||||||
m_DartConfiguration["DropMethod"] == "ftp" )
|
m_DartConfiguration["DropMethod"] == "ftp" )
|
||||||
{
|
{
|
||||||
|
ofs << "Using drop method: FTP" << std::endl;
|
||||||
std::cout << " Using FTP submit method" << std::endl;
|
std::cout << " Using FTP submit method" << std::endl;
|
||||||
std::string url = "ftp://";
|
std::string url = "ftp://";
|
||||||
url += cmCTest::MakeURLSafe(m_DartConfiguration["DropSiteUser"]) + ":" +
|
url += cmCTest::MakeURLSafe(m_DartConfiguration["DropSiteUser"]) + ":" +
|
||||||
@ -2512,18 +2529,22 @@ int cmCTest::SubmitResults()
|
|||||||
files, prefix, url) )
|
files, prefix, url) )
|
||||||
{
|
{
|
||||||
std::cerr << " Problems when submitting via FTP" << std::endl;
|
std::cerr << " Problems when submitting via FTP" << std::endl;
|
||||||
|
ofs << " Problems when submitting via FTP" << std::endl;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if ( !submit.TriggerUsingHTTP(files, prefix, m_DartConfiguration["TriggerSite"]) )
|
if ( !submit.TriggerUsingHTTP(files, prefix, m_DartConfiguration["TriggerSite"]) )
|
||||||
{
|
{
|
||||||
std::cerr << " Problems when triggering via HTTP" << std::endl;
|
std::cerr << " Problems when triggering via HTTP" << std::endl;
|
||||||
|
ofs << " Problems when triggering via HTTP" << std::endl;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
std::cout << " Submission successfull" << std::endl;
|
std::cout << " Submission successfull" << std::endl;
|
||||||
|
ofs << " Submission succesfull" << std::endl;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else if ( m_DartConfiguration["DropMethod"] == "http" )
|
else if ( m_DartConfiguration["DropMethod"] == "http" )
|
||||||
{
|
{
|
||||||
|
ofs << "Using drop method: HTTP" << std::endl;
|
||||||
std::cout << " Using HTTP submit method" << std::endl;
|
std::cout << " Using HTTP submit method" << std::endl;
|
||||||
std::string url = "http://";
|
std::string url = "http://";
|
||||||
if ( m_DartConfiguration["DropSiteUser"].size() > 0 )
|
if ( m_DartConfiguration["DropSiteUser"].size() > 0 )
|
||||||
@ -2539,19 +2560,23 @@ int cmCTest::SubmitResults()
|
|||||||
if ( !submit.SubmitUsingHTTP(m_ToplevelPath+"/Testing/"+m_CurrentTag, files, prefix, url) )
|
if ( !submit.SubmitUsingHTTP(m_ToplevelPath+"/Testing/"+m_CurrentTag, files, prefix, url) )
|
||||||
{
|
{
|
||||||
std::cerr << " Problems when submitting via HTTP" << std::endl;
|
std::cerr << " Problems when submitting via HTTP" << std::endl;
|
||||||
|
ofs << " Problems when submitting via HTTP" << std::endl;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if ( !submit.TriggerUsingHTTP(files, prefix, m_DartConfiguration["TriggerSite"]) )
|
if ( !submit.TriggerUsingHTTP(files, prefix, m_DartConfiguration["TriggerSite"]) )
|
||||||
{
|
{
|
||||||
std::cerr << " Problems when triggering via HTTP" << std::endl;
|
std::cerr << " Problems when triggering via HTTP" << std::endl;
|
||||||
|
ofs << " Problems when triggering via HTTP" << std::endl;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
std::cout << " Submission successfull" << std::endl;
|
std::cout << " Submission successfull" << std::endl;
|
||||||
|
ofs << " Submission succesfull" << std::endl;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::cerr << "SCP submit not yet implemented" << std::endl;
|
std::cerr << "SCP submit not yet implemented" << std::endl;
|
||||||
|
ofs << "SCP submit not yet implemented" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user