diff options
author | Zach Mullen <zach.mullen@kitware.com> | 2011-02-18 17:11:51 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2011-03-15 19:07:37 (GMT) |
commit | 350546db3aa956e34487bd38dd048fe9a0689e4a (patch) | |
tree | 3f0bda38ef56ddba39d93cb172e5cec8e6fb3fe7 /Source/CTest/cmCTestUploadHandler.cxx | |
parent | 0554e5e50f6eb3117b4e207f4b01876dbe5a75a4 (diff) | |
download | CMake-350546db3aa956e34487bd38dd048fe9a0689e4a.zip CMake-350546db3aa956e34487bd38dd048fe9a0689e4a.tar.gz CMake-350546db3aa956e34487bd38dd048fe9a0689e4a.tar.bz2 |
Implement ctest_upload command
Diffstat (limited to 'Source/CTest/cmCTestUploadHandler.cxx')
-rw-r--r-- | Source/CTest/cmCTestUploadHandler.cxx | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/Source/CTest/cmCTestUploadHandler.cxx b/Source/CTest/cmCTestUploadHandler.cxx new file mode 100644 index 0000000..d5f6ab6 --- /dev/null +++ b/Source/CTest/cmCTestUploadHandler.cxx @@ -0,0 +1,77 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2009 Kitware, Inc. + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ +#include "cmCTestUploadHandler.h" + +#include "cmGeneratedFileStream.h" +#include "cmVersion.h" +#include "cmXMLSafe.h" + +//---------------------------------------------------------------------------- +cmCTestUploadHandler::cmCTestUploadHandler() +{ + this->Initialize(); +} + +//---------------------------------------------------------------------------- +void cmCTestUploadHandler::Initialize() +{ + this->Superclass::Initialize(); + this->Files.clear(); +} + +void cmCTestUploadHandler::SetFiles(const cmCTest::SetOfStrings& files) +{ + this->Files = files; +} + +//---------------------------------------------------------------------------- +int cmCTestUploadHandler::ProcessHandler() +{ + cmGeneratedFileStream ofs; + if ( !this->CTest->OpenOutputFile(this->CTest->GetCurrentTag(), + "Upload.xml", ofs)) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot open Upload.xml file" << std::endl); + return -1; + } + + cmCTest::SetOfStrings::const_iterator it; + ofs << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + << "<?xml-stylesheet type=\"text/xsl\" " + "href=\"Dart/Source/Server/XSL/Build.xsl " + "<file:///Dart/Source/Server/XSL/Build.xsl> \"?>\n" + << "<Site BuildName=\"" + << this->CTest->GetCTestConfiguration("BuildName") + << "\" BuildStamp=\"" + << this->CTest->GetCurrentTag() << "-" + << this->CTest->GetTestModelString() << "\" Name=\"" + << this->CTest->GetCTestConfiguration("Site") << "\" Generator=\"ctest" + << cmVersion::GetCMakeVersion() + << "\">\n"; + this->CTest->AddSiteProperties(ofs); + ofs << "<Files>\n"; + + for ( it = this->Files.begin(); it != this->Files.end(); it ++ ) + { + cmCTestLog(this->CTest, OUTPUT, + "\tUpload file: " << it->c_str() << std::endl); + ofs << "<File filename=\"" << cmXMLSafe(*it) << "\">\n" + << "<Content compression=\"tar/gzip\" encoding=\"base64\">\n"; + ofs << this->CTest->Base64GzipEncodeFile(*it); + ofs << "\n</Content>\n" + << "</File>\n"; + } + ofs << "</Files>\n" + << "</Site>\n"; + return 0; +} |