ENH: More commands. Start working on new style ctest configuration
This commit is contained in:
parent
572d9f1147
commit
f1ebfb24c6
|
@ -0,0 +1,6 @@
|
||||||
|
SET (CTEST_NIGHTLY_START_TIME "21:00:00 EDT")
|
||||||
|
SET (CTEST_DROP_SITE "public.kitware.com")
|
||||||
|
SET (CTEST_DROP_LOCATION "/cgi-bin/HTTPUploadDartFile.cgi")
|
||||||
|
SET (CTEST_TRIGGER_SITE
|
||||||
|
"http://${DROP_SITE}/cgi-bin/Submit-CMake-TestingResults.cgi")
|
||||||
|
|
|
@ -151,20 +151,22 @@ INCLUDE_DIRECTORIES(
|
||||||
# Sources for CTestLib
|
# Sources for CTestLib
|
||||||
#
|
#
|
||||||
SET(CMTEST_SRCS cmCTest.cxx
|
SET(CMTEST_SRCS cmCTest.cxx
|
||||||
CTest/cmCTestGenericHandler.cxx
|
CTest/cmCTestBuildCommand.cxx
|
||||||
CTest/cmCTestBuildHandler.cxx
|
CTest/cmCTestBuildHandler.cxx
|
||||||
|
CTest/cmCTestConfigureCommand.cxx
|
||||||
CTest/cmCTestConfigureHandler.cxx
|
CTest/cmCTestConfigureHandler.cxx
|
||||||
CTest/cmCTestCoverageHandler.cxx
|
CTest/cmCTestCoverageHandler.cxx
|
||||||
CTest/cmCTestScriptHandler.cxx
|
|
||||||
CTest/cmCTestTestHandler.cxx
|
|
||||||
CTest/cmCTestUpdateHandler.cxx
|
|
||||||
CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
|
CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
|
||||||
|
CTest/cmCTestGenericHandler.cxx
|
||||||
|
CTest/cmCTestMemCheckHandler.cxx
|
||||||
CTest/cmCTestRunScriptCommand.cxx
|
CTest/cmCTestRunScriptCommand.cxx
|
||||||
|
CTest/cmCTestScriptHandler.cxx
|
||||||
CTest/cmCTestSleepCommand.cxx
|
CTest/cmCTestSleepCommand.cxx
|
||||||
CTest/cmCTestStartCommand.cxx
|
CTest/cmCTestStartCommand.cxx
|
||||||
CTest/cmCTestUpdateCommand.cxx
|
|
||||||
CTest/cmCTestMemCheckHandler.cxx
|
|
||||||
CTest/cmCTestSubmit.cxx
|
CTest/cmCTestSubmit.cxx
|
||||||
|
CTest/cmCTestTestHandler.cxx
|
||||||
|
CTest/cmCTestUpdateCommand.cxx
|
||||||
|
CTest/cmCTestUpdateHandler.cxx
|
||||||
)
|
)
|
||||||
|
|
||||||
# Build CTestLib
|
# Build CTestLib
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
/*=========================================================================
|
||||||
|
|
||||||
|
Program: CMake - Cross-Platform Makefile Generator
|
||||||
|
Module: $RCSfile$
|
||||||
|
Language: C++
|
||||||
|
Date: $Date$
|
||||||
|
Version: $Revision$
|
||||||
|
|
||||||
|
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
|
||||||
|
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
|
||||||
|
|
||||||
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
||||||
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. See the above copyright notices for more information.
|
||||||
|
|
||||||
|
=========================================================================*/
|
||||||
|
#include "cmCTestBuildCommand.h"
|
||||||
|
|
||||||
|
#include "cmCTest.h"
|
||||||
|
#include "cmCTestGenericHandler.h"
|
||||||
|
|
||||||
|
bool cmCTestBuildCommand::InitialPass(
|
||||||
|
std::vector<std::string> const& args)
|
||||||
|
{
|
||||||
|
if (args.size() != 2)
|
||||||
|
{
|
||||||
|
this->SetError("called with incorrect number of arguments");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* build_dir = args[0].c_str();
|
||||||
|
const char* res_var = args[1].c_str();
|
||||||
|
|
||||||
|
m_CTest->SetDartConfiguration("BuildDirectory", build_dir);
|
||||||
|
cmCTestGenericHandler* handler = m_CTest->GetHandler("build");
|
||||||
|
if ( !handler )
|
||||||
|
{
|
||||||
|
this->SetError("internal CTest error. Cannot instantiate build handler");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
int res = handler->ProcessHandler();
|
||||||
|
cmOStringStream str;
|
||||||
|
str << res;
|
||||||
|
m_Makefile->AddDefinition(res_var, str.str().c_str());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
/*=========================================================================
|
||||||
|
|
||||||
|
Program: CMake - Cross-Platform Makefile Generator
|
||||||
|
Module: $RCSfile$
|
||||||
|
Language: C++
|
||||||
|
Date: $Date$
|
||||||
|
Version: $Revision$
|
||||||
|
|
||||||
|
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
|
||||||
|
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
|
||||||
|
|
||||||
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
||||||
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. See the above copyright notices for more information.
|
||||||
|
|
||||||
|
=========================================================================*/
|
||||||
|
#ifndef cmCTestBuildCommand_h
|
||||||
|
#define cmCTestBuildCommand_h
|
||||||
|
|
||||||
|
#include "cmCTestCommand.h"
|
||||||
|
|
||||||
|
/** \class cmCTestBuild
|
||||||
|
* \brief Run a ctest script
|
||||||
|
*
|
||||||
|
* cmCTestBuildCommand defineds the command to build the project.
|
||||||
|
*/
|
||||||
|
class cmCTestBuildCommand : public cmCTestCommand
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
cmCTestBuildCommand() {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a virtual constructor for the command.
|
||||||
|
*/
|
||||||
|
virtual cmCommand* Clone()
|
||||||
|
{
|
||||||
|
cmCTestBuildCommand* ni = new cmCTestBuildCommand;
|
||||||
|
ni->m_CTest = this->m_CTest;
|
||||||
|
ni->m_CTestScriptHandler = this->m_CTestScriptHandler;
|
||||||
|
return ni;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is called when the command is first encountered in
|
||||||
|
* the CMakeLists.txt file.
|
||||||
|
*/
|
||||||
|
virtual bool InitialPass(std::vector<std::string> const& args);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The name of the command as specified in CMakeList.txt.
|
||||||
|
*/
|
||||||
|
virtual const char* GetName() { return "CTEST_BUILD";}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Succinct documentation.
|
||||||
|
*/
|
||||||
|
virtual const char* GetTerseDocumentation()
|
||||||
|
{
|
||||||
|
return "Builds the repository.";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* More documentation.
|
||||||
|
*/
|
||||||
|
virtual const char* GetFullDocumentation()
|
||||||
|
{
|
||||||
|
return
|
||||||
|
" CTEST_BUILD(build_dir res)\n"
|
||||||
|
"Builds the given build directory and stores results in Build.xml.";
|
||||||
|
}
|
||||||
|
|
||||||
|
cmTypeMacro(cmCTestBuildCommand, cmCTestCommand);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,50 @@
|
||||||
|
/*=========================================================================
|
||||||
|
|
||||||
|
Program: CMake - Cross-Platform Makefile Generator
|
||||||
|
Module: $RCSfile$
|
||||||
|
Language: C++
|
||||||
|
Date: $Date$
|
||||||
|
Version: $Revision$
|
||||||
|
|
||||||
|
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
|
||||||
|
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
|
||||||
|
|
||||||
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
||||||
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. See the above copyright notices for more information.
|
||||||
|
|
||||||
|
=========================================================================*/
|
||||||
|
#include "cmCTestConfigureCommand.h"
|
||||||
|
|
||||||
|
#include "cmCTest.h"
|
||||||
|
#include "cmCTestGenericHandler.h"
|
||||||
|
|
||||||
|
bool cmCTestConfigureCommand::InitialPass(
|
||||||
|
std::vector<std::string> const& args)
|
||||||
|
{
|
||||||
|
if (args.size() != 2)
|
||||||
|
{
|
||||||
|
this->SetError("called with incorrect number of arguments");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* build_dir = args[0].c_str();
|
||||||
|
const char* res_var = args[1].c_str();
|
||||||
|
|
||||||
|
m_CTest->SetDartConfigurationFromCMakeVariable(m_Makefile, "ConfigureCommand", "CTEST_CONFIGURE_COMMAND");
|
||||||
|
m_CTest->SetDartConfiguration("BuildDirectory", build_dir);
|
||||||
|
|
||||||
|
cmCTestGenericHandler* handler = m_CTest->GetHandler("configure");
|
||||||
|
if ( !handler )
|
||||||
|
{
|
||||||
|
this->SetError("internal CTest error. Cannot instantiate configure handler");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
int res = handler->ProcessHandler();
|
||||||
|
cmOStringStream str;
|
||||||
|
str << res;
|
||||||
|
m_Makefile->AddDefinition(res_var, str.str().c_str());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
/*=========================================================================
|
||||||
|
|
||||||
|
Program: CMake - Cross-Platform Makefile Generator
|
||||||
|
Module: $RCSfile$
|
||||||
|
Language: C++
|
||||||
|
Date: $Date$
|
||||||
|
Version: $Revision$
|
||||||
|
|
||||||
|
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
|
||||||
|
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
|
||||||
|
|
||||||
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
||||||
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. See the above copyright notices for more information.
|
||||||
|
|
||||||
|
=========================================================================*/
|
||||||
|
#ifndef cmCTestConfigureCommand_h
|
||||||
|
#define cmCTestConfigureCommand_h
|
||||||
|
|
||||||
|
#include "cmCTestCommand.h"
|
||||||
|
|
||||||
|
/** \class cmCTestConfigure
|
||||||
|
* \brief Run a ctest script
|
||||||
|
*
|
||||||
|
* cmCTestConfigureCommand defineds the command to configures the project.
|
||||||
|
*/
|
||||||
|
class cmCTestConfigureCommand : public cmCTestCommand
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
cmCTestConfigureCommand() {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a virtual constructor for the command.
|
||||||
|
*/
|
||||||
|
virtual cmCommand* Clone()
|
||||||
|
{
|
||||||
|
cmCTestConfigureCommand* ni = new cmCTestConfigureCommand;
|
||||||
|
ni->m_CTest = this->m_CTest;
|
||||||
|
ni->m_CTestScriptHandler = this->m_CTestScriptHandler;
|
||||||
|
return ni;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is called when the command is first encountered in
|
||||||
|
* the CMakeLists.txt file.
|
||||||
|
*/
|
||||||
|
virtual bool InitialPass(std::vector<std::string> const& args);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The name of the command as specified in CMakeList.txt.
|
||||||
|
*/
|
||||||
|
virtual const char* GetName() { return "CTEST_CONFIGURE";}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Succinct documentation.
|
||||||
|
*/
|
||||||
|
virtual const char* GetTerseDocumentation()
|
||||||
|
{
|
||||||
|
return "Configures the repository.";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* More documentation.
|
||||||
|
*/
|
||||||
|
virtual const char* GetFullDocumentation()
|
||||||
|
{
|
||||||
|
return
|
||||||
|
" CTEST_CONFIGURE(build_dir res)\n"
|
||||||
|
"Configures the given build directory and stores results in Configure.xml. The "
|
||||||
|
"second argument is a variable that will hold return value.";
|
||||||
|
}
|
||||||
|
|
||||||
|
cmTypeMacro(cmCTestConfigureCommand, cmCTestCommand);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
|
@ -42,6 +42,8 @@
|
||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "cmCTestBuildCommand.h"
|
||||||
|
#include "cmCTestConfigureCommand.h"
|
||||||
#include "cmCTestEmptyBinaryDirectoryCommand.h"
|
#include "cmCTestEmptyBinaryDirectoryCommand.h"
|
||||||
#include "cmCTestRunScriptCommand.h"
|
#include "cmCTestRunScriptCommand.h"
|
||||||
#include "cmCTestSleepCommand.h"
|
#include "cmCTestSleepCommand.h"
|
||||||
|
@ -220,8 +222,10 @@ int cmCTestScriptHandler::ReadInScript(const std::string& total_script_arg)
|
||||||
// add any ctest specific commands, probably should have common superclass
|
// add any ctest specific commands, probably should have common superclass
|
||||||
// for ctest commands to clean this up. If a couple more commands are
|
// for ctest commands to clean this up. If a couple more commands are
|
||||||
// created with the same format lets do that - ken
|
// created with the same format lets do that - ken
|
||||||
this->AddCTestCommand(new cmCTestRunScriptCommand);
|
this->AddCTestCommand(new cmCTestBuildCommand);
|
||||||
|
this->AddCTestCommand(new cmCTestConfigureCommand);
|
||||||
this->AddCTestCommand(new cmCTestEmptyBinaryDirectoryCommand);
|
this->AddCTestCommand(new cmCTestEmptyBinaryDirectoryCommand);
|
||||||
|
this->AddCTestCommand(new cmCTestRunScriptCommand);
|
||||||
this->AddCTestCommand(new cmCTestSleepCommand);
|
this->AddCTestCommand(new cmCTestSleepCommand);
|
||||||
this->AddCTestCommand(new cmCTestStartCommand);
|
this->AddCTestCommand(new cmCTestStartCommand);
|
||||||
this->AddCTestCommand(new cmCTestUpdateCommand);
|
this->AddCTestCommand(new cmCTestUpdateCommand);
|
||||||
|
@ -372,6 +376,7 @@ int cmCTestScriptHandler::RunConfigurationScript(const std::string& total_script
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
int cmCTestScriptHandler::RunCurrentScript()
|
int cmCTestScriptHandler::RunCurrentScript()
|
||||||
{
|
{
|
||||||
int result;
|
int result;
|
||||||
|
|
|
@ -17,6 +17,8 @@
|
||||||
#include "cmCTestStartCommand.h"
|
#include "cmCTestStartCommand.h"
|
||||||
|
|
||||||
#include "cmCTest.h"
|
#include "cmCTest.h"
|
||||||
|
#include "cmLocalGenerator.h"
|
||||||
|
#include "cmGlobalGenerator.h"
|
||||||
|
|
||||||
bool cmCTestStartCommand::InitialPass(
|
bool cmCTestStartCommand::InitialPass(
|
||||||
std::vector<std::string> const& args)
|
std::vector<std::string> const& args)
|
||||||
|
@ -65,6 +67,27 @@ bool cmCTestStartCommand::InitialPass(
|
||||||
std::cout << "Run dashboard with model " << smodel
|
std::cout << "Run dashboard with model " << smodel
|
||||||
<< " for src dir: " << src_dir << " and binary dir: " << bld_dir << std::endl;
|
<< " for src dir: " << src_dir << " and binary dir: " << bld_dir << std::endl;
|
||||||
|
|
||||||
|
std::string fname = src_dir;
|
||||||
|
fname += "/CTestConfig.cmake";
|
||||||
|
cmSystemTools::ConvertToUnixSlashes(fname);
|
||||||
|
if ( cmSystemTools::FileExists(fname.c_str()) )
|
||||||
|
{
|
||||||
|
std::cout << " Reading ctest configuration file: " << fname.c_str() << std::endl;
|
||||||
|
bool readit = m_Makefile->ReadListFile(m_Makefile->GetCurrentListFile(),
|
||||||
|
fname.c_str() );
|
||||||
|
if(!readit)
|
||||||
|
{
|
||||||
|
std::string m = "Could not find include file: ";
|
||||||
|
m += fname;
|
||||||
|
this->SetError(m.c_str());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m_CTest->SetDartConfigurationFromCMakeVariable(m_Makefile, "NightlyStartTime", "CTEST_NIGHTLY_START_TIME");
|
||||||
|
m_CTest->SetDartConfiguration("SourceDirectory", src_dir);
|
||||||
|
m_CTest->SetDartConfiguration("BuildDirectory", bld_dir);
|
||||||
|
|
||||||
int model = m_CTest->GetTestModelFromString(smodel);
|
int model = m_CTest->GetTestModelFromString(smodel);
|
||||||
m_CTest->SetTestModel(model);
|
m_CTest->SetTestModel(model);
|
||||||
m_CTest->SetProduceXML(true);
|
m_CTest->SetProduceXML(true);
|
||||||
|
|
|
@ -31,6 +31,9 @@ bool cmCTestUpdateCommand::InitialPass(
|
||||||
const char* source_dir = args[0].c_str();
|
const char* source_dir = args[0].c_str();
|
||||||
const char* res_var = args[1].c_str();
|
const char* res_var = args[1].c_str();
|
||||||
|
|
||||||
|
m_CTest->SetDartConfigurationFromCMakeVariable(m_Makefile, "CVSCommand", "CTEST_CVS_COMMAND");
|
||||||
|
m_CTest->SetDartConfigurationFromCMakeVariable(m_Makefile, "SVNCommand", "CTEST_SVN_COMMAND");
|
||||||
|
|
||||||
cmCTestGenericHandler* handler = m_CTest->GetHandler("update");
|
cmCTestGenericHandler* handler = m_CTest->GetHandler("update");
|
||||||
if ( !handler )
|
if ( !handler )
|
||||||
{
|
{
|
||||||
|
|
|
@ -227,6 +227,7 @@ cmCTest::cmCTest()
|
||||||
m_BuildNoClean = false;
|
m_BuildNoClean = false;
|
||||||
m_BuildTwoConfig = false;
|
m_BuildTwoConfig = false;
|
||||||
m_Verbose = false;
|
m_Verbose = false;
|
||||||
|
m_ExtraVerbose = false;
|
||||||
m_ProduceXML = false;
|
m_ProduceXML = false;
|
||||||
m_ShowOnly = false;
|
m_ShowOnly = false;
|
||||||
m_RunConfigurationScript = false;
|
m_RunConfigurationScript = false;
|
||||||
|
@ -343,7 +344,7 @@ int cmCTest::Initialize(const char* binary_dir)
|
||||||
if ( m_TestModel == cmCTest::NIGHTLY )
|
if ( m_TestModel == cmCTest::NIGHTLY )
|
||||||
{
|
{
|
||||||
lctime = cmCTest::GetNightlyTime(m_DartConfiguration["NightlyStartTime"],
|
lctime = cmCTest::GetNightlyTime(m_DartConfiguration["NightlyStartTime"],
|
||||||
m_Verbose,
|
m_ExtraVerbose,
|
||||||
m_TomorrowTag);
|
m_TomorrowTag);
|
||||||
}
|
}
|
||||||
char datestring[100];
|
char datestring[100];
|
||||||
|
@ -627,7 +628,7 @@ int cmCTest::SubmitResults()
|
||||||
std::cout << "Submit files (using " << m_DartConfiguration["DropMethod"] << ")"
|
std::cout << "Submit files (using " << m_DartConfiguration["DropMethod"] << ")"
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
cmCTestSubmit submit;
|
cmCTestSubmit submit;
|
||||||
submit.SetVerbose(m_Verbose);
|
submit.SetVerbose(m_ExtraVerbose);
|
||||||
submit.SetLogFile(&ofs);
|
submit.SetLogFile(&ofs);
|
||||||
if ( m_DartConfiguration["DropMethod"] == "" ||
|
if ( m_DartConfiguration["DropMethod"] == "" ||
|
||||||
m_DartConfiguration["DropMethod"] == "ftp" )
|
m_DartConfiguration["DropMethod"] == "ftp" )
|
||||||
|
@ -1048,7 +1049,7 @@ int cmCTest::RunTest(std::vector<const char*> argv,
|
||||||
}
|
}
|
||||||
cmSystemTools::ChangeDirectory(oldpath.c_str());
|
cmSystemTools::ChangeDirectory(oldpath.c_str());
|
||||||
|
|
||||||
if(m_Verbose)
|
if(m_ExtraVerbose)
|
||||||
{
|
{
|
||||||
std::cout << "Internal cmCTest object used to run test.\n";
|
std::cout << "Internal cmCTest object used to run test.\n";
|
||||||
std::cout << *output << "\n";
|
std::cout << *output << "\n";
|
||||||
|
@ -1079,7 +1080,7 @@ int cmCTest::RunTest(std::vector<const char*> argv,
|
||||||
{
|
{
|
||||||
tempOutput.insert(tempOutput.end(), data, data+length);
|
tempOutput.insert(tempOutput.end(), data, data+length);
|
||||||
}
|
}
|
||||||
if ( m_Verbose )
|
if ( m_ExtraVerbose )
|
||||||
{
|
{
|
||||||
std::cout.write(data, length);
|
std::cout.write(data, length);
|
||||||
std::cout.flush();
|
std::cout.flush();
|
||||||
|
@ -1096,7 +1097,7 @@ int cmCTest::RunTest(std::vector<const char*> argv,
|
||||||
{
|
{
|
||||||
output->append(&*tempOutput.begin(), tempOutput.size());
|
output->append(&*tempOutput.begin(), tempOutput.size());
|
||||||
}
|
}
|
||||||
if ( m_Verbose )
|
if ( m_ExtraVerbose )
|
||||||
{
|
{
|
||||||
std::cout << "-- Process completed" << std::endl;
|
std::cout << "-- Process completed" << std::endl;
|
||||||
}
|
}
|
||||||
|
@ -1113,7 +1114,7 @@ int cmCTest::RunTest(std::vector<const char*> argv,
|
||||||
std::string outerr = "\n*** Exception executing: ";
|
std::string outerr = "\n*** Exception executing: ";
|
||||||
outerr += cmsysProcess_GetExceptionString(cp);
|
outerr += cmsysProcess_GetExceptionString(cp);
|
||||||
*output += outerr;
|
*output += outerr;
|
||||||
if ( m_Verbose )
|
if ( m_ExtraVerbose )
|
||||||
{
|
{
|
||||||
std::cout << outerr.c_str() << "\n";
|
std::cout << outerr.c_str() << "\n";
|
||||||
std::cout.flush();
|
std::cout.flush();
|
||||||
|
@ -1124,7 +1125,7 @@ int cmCTest::RunTest(std::vector<const char*> argv,
|
||||||
std::string outerr = "\n*** ERROR executing: ";
|
std::string outerr = "\n*** ERROR executing: ";
|
||||||
outerr += cmsysProcess_GetErrorString(cp);
|
outerr += cmsysProcess_GetErrorString(cp);
|
||||||
*output += outerr;
|
*output += outerr;
|
||||||
if ( m_Verbose )
|
if ( m_ExtraVerbose )
|
||||||
{
|
{
|
||||||
std::cout << outerr.c_str() << "\n";
|
std::cout << outerr.c_str() << "\n";
|
||||||
std::cout.flush();
|
std::cout.flush();
|
||||||
|
@ -1246,11 +1247,11 @@ int cmCTest::Run(std::vector<std::string>const& args, std::string* output)
|
||||||
if( arg.find("-V",0) == 0 || arg.find("--verbose",0) == 0 )
|
if( arg.find("-V",0) == 0 || arg.find("--verbose",0) == 0 )
|
||||||
{
|
{
|
||||||
this->m_Verbose = true;
|
this->m_Verbose = true;
|
||||||
cmCTest::t_TestingHandlers::iterator it;
|
|
||||||
for ( it = m_TestingHandlers.begin(); it != m_TestingHandlers.end(); ++ it )
|
|
||||||
{
|
|
||||||
it->second->SetVerbose(this->m_Verbose);
|
|
||||||
}
|
}
|
||||||
|
if( arg.find("-VV",0) == 0 || arg.find("--extra-verbose",0) == 0 )
|
||||||
|
{
|
||||||
|
this->m_ExtraVerbose = true;
|
||||||
|
this->m_Verbose = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( arg.find("-N",0) == 0 || arg.find("--show-only",0) == 0 )
|
if( arg.find("-N",0) == 0 || arg.find("--show-only",0) == 0 )
|
||||||
|
@ -1670,10 +1671,22 @@ int cmCTest::Run(std::vector<std::string>const& args, std::string* output)
|
||||||
// call process directory
|
// call process directory
|
||||||
if (this->m_RunConfigurationScript)
|
if (this->m_RunConfigurationScript)
|
||||||
{
|
{
|
||||||
|
cmCTest::t_TestingHandlers::iterator it;
|
||||||
|
for ( it = m_TestingHandlers.begin(); it != m_TestingHandlers.end(); ++ it )
|
||||||
|
{
|
||||||
|
it->second->SetVerbose(this->m_ExtraVerbose);
|
||||||
|
}
|
||||||
|
this->GetHandler("script")->SetVerbose(m_Verbose);
|
||||||
res = this->GetHandler("script")->ProcessHandler();
|
res = this->GetHandler("script")->ProcessHandler();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
m_Verbose = m_ExtraVerbose;
|
||||||
|
cmCTest::t_TestingHandlers::iterator it;
|
||||||
|
for ( it = m_TestingHandlers.begin(); it != m_TestingHandlers.end(); ++ it )
|
||||||
|
{
|
||||||
|
it->second->SetVerbose(this->m_Verbose);
|
||||||
|
}
|
||||||
if ( !this->Initialize(cmSystemTools::GetCurrentWorkingDirectory().c_str()) )
|
if ( !this->Initialize(cmSystemTools::GetCurrentWorkingDirectory().c_str()) )
|
||||||
{
|
{
|
||||||
res = 12;
|
res = 12;
|
||||||
|
@ -2200,6 +2213,20 @@ std::string cmCTest::GetDartConfiguration(const char *name)
|
||||||
return m_DartConfiguration[name];
|
return m_DartConfiguration[name];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cmCTest::SetDartConfiguration(const char *name, const char* value)
|
||||||
|
{
|
||||||
|
if ( !name )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ( !value )
|
||||||
|
{
|
||||||
|
m_DartConfiguration.erase(name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
m_DartConfiguration[name] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
std::string cmCTest::GetCurrentTag()
|
std::string cmCTest::GetCurrentTag()
|
||||||
{
|
{
|
||||||
|
@ -2230,3 +2257,15 @@ bool cmCTest::GetProduceXML()
|
||||||
{
|
{
|
||||||
return m_ProduceXML;
|
return m_ProduceXML;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool cmCTest::SetDartConfigurationFromCMakeVariable(cmMakefile* mf, const char* dconfig, const char* cmake_var)
|
||||||
|
{
|
||||||
|
const char* ctvar;
|
||||||
|
ctvar = mf->GetDefinition(cmake_var);
|
||||||
|
if ( !ctvar )
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this->SetDartConfiguration(dconfig, ctvar);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
|
@ -101,6 +101,7 @@ public:
|
||||||
static int GetTestModelFromString(const char* str);
|
static int GetTestModelFromString(const char* str);
|
||||||
static std::string CleanString(const std::string& str);
|
static std::string CleanString(const std::string& str);
|
||||||
std::string GetDartConfiguration(const char *name);
|
std::string GetDartConfiguration(const char *name);
|
||||||
|
void SetDartConfiguration(const char *name, const char* value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* constructor and destructor
|
* constructor and destructor
|
||||||
|
@ -192,9 +193,15 @@ public:
|
||||||
*/
|
*/
|
||||||
cmCTestGenericHandler* GetHandler(const char* handler);
|
cmCTestGenericHandler* GetHandler(const char* handler);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the CTest variable from CMake variable
|
||||||
|
*/
|
||||||
|
bool SetDartConfigurationFromCMakeVariable(cmMakefile* mf, const char* dconfig, const char* cmake_var);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string m_ConfigType;
|
std::string m_ConfigType;
|
||||||
bool m_Verbose;
|
bool m_Verbose;
|
||||||
|
bool m_ExtraVerbose;
|
||||||
bool m_ProduceXML;
|
bool m_ProduceXML;
|
||||||
|
|
||||||
bool m_ForceNewCTestProcess;
|
bool m_ForceNewCTestProcess;
|
||||||
|
|
Loading…
Reference in New Issue