summaryrefslogtreecommitdiffstats
path: root/Source/CTest/cmCTestTestHandler.cxx
diff options
context:
space:
mode:
authorZach Mullen <zach.mullen@kitware.com>2009-12-15 19:24:24 (GMT)
committerZach Mullen <zach.mullen@kitware.com>2009-12-15 19:24:24 (GMT)
commit5bfe1a196223cbbf76e30ff3607959844ad3ceef (patch)
treeffd0312a3a7e36f56bdadd570f7e8ceb53a44a0a /Source/CTest/cmCTestTestHandler.cxx
parent93407682fe0092e8fc24e83f6be8f2706c9d31ae (diff)
downloadCMake-5bfe1a196223cbbf76e30ff3607959844ad3ceef.zip
CMake-5bfe1a196223cbbf76e30ff3607959844ad3ceef.tar.gz
CMake-5bfe1a196223cbbf76e30ff3607959844ad3ceef.tar.bz2
Changed XML formatting of files attached to test so that each file is archived and marked up individually, in order to make things easier on the CDash side. Also switched to using the NamedMeasurement tag instead of a new tag.
Diffstat (limited to 'Source/CTest/cmCTestTestHandler.cxx')
-rw-r--r--Source/CTest/cmCTestTestHandler.cxx43
1 files changed, 17 insertions, 26 deletions
diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx
index da78815..effa995 100644
--- a/Source/CTest/cmCTestTestHandler.cxx
+++ b/Source/CTest/cmCTestTestHandler.cxx
@@ -1255,46 +1255,37 @@ void cmCTestTestHandler::WriteTestResultFooter(std::ostream& os,
<< "\t</Test>" << std::endl;
}
+//----------------------------------------------------------------------
void cmCTestTestHandler::AttachFiles(std::ostream& os,
cmCTestTestResult* result)
{
- if(result->Properties->AttachedFiles.empty())
- {
- return;
- }
-
- std::string base64 = this->EncodeFiles(result);
- if(base64 == "")
- {
- return;
- }
- os << "\t\t<AttachedFiles encoding=\"base64\" compression=\"tar/gzip\">\n"
- << base64 << "\n"
- << "\t\t</AttachedFiles>\n";
+ for(std::vector<std::string>::const_iterator file =
+ result->Properties->AttachedFiles.begin();
+ file != result->Properties->AttachedFiles.end(); ++file)
+ {
+ std::string base64 = this->EncodeFile(*file);
+ std::string fname = cmSystemTools::GetFilenameName(*file);
+ os << "\t\t<NamedMeasurement name=\"Attached File\" encoding=\"base64\" "
+ "compression=\"tar/gzip\" filename=\"" << fname << "\" type=\"file\">"
+ "\n\t\t\t<Value>\n\t\t\t"
+ << base64
+ << "\n\t\t\t</Value>\n\t\t</NamedMeasurement>\n";
+ }
}
//----------------------------------------------------------------------
-std::string cmCTestTestHandler::EncodeFiles(cmCTestTestResult* result)
+std::string cmCTestTestHandler::EncodeFile(std::string file)
{
- //create the temp tar file
- std::string tarFile = result->Name + "_attached.tar.gz";
+ std::string tarFile = file + "_temp.tar.gz";
std::vector<cmStdString> files;
-
- for(std::vector<std::string>::iterator f =
- result->Properties->AttachedFiles.begin();
- f != result->Properties->AttachedFiles.end(); ++f)
- {
- const cmStdString fname = f->c_str();
- files.push_back(fname);
- }
+ files.push_back(file);
if(!cmSystemTools::CreateTar(tarFile.c_str(), files, true, false, false))
{
cmCTestLog(this->CTest, ERROR_MESSAGE, "Error creating tar while "
- "attaching files to the following test: " << result->Name << std::endl);
+ "attaching file: " << file << std::endl);
return "";
}
-
long len = cmSystemTools::FileLength(tarFile.c_str());
std::ifstream ifs(tarFile.c_str(), std::ios::in
#ifdef _WIN32