summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/ctest.cxx49
-rw-r--r--Source/ctest.h6
2 files changed, 52 insertions, 3 deletions
diff --git a/Source/ctest.cxx b/Source/ctest.cxx
index 7495141..85d5a21 100644
--- a/Source/ctest.cxx
+++ b/Source/ctest.cxx
@@ -143,6 +143,10 @@ bool ctest::SetTest(const char* ttype)
{
m_Tests[ctest::UPDATE_TEST] = 1;
}
+ else if ( cmSystemTools::LowerCase(ttype) == "configure" )
+ {
+ m_Tests[ctest::CONFIGURE_TEST] = 1;
+ }
else if ( cmSystemTools::LowerCase(ttype) == "build" )
{
m_Tests[ctest::BUILD_TEST] = 1;
@@ -281,7 +285,7 @@ void ctest::UpdateDirectory()
}
std::string sourceDirectory = m_DartConfiguration["SourceDirectory"];
- if ( cvsOptions.size() == 0 )
+ if ( sourceDirectory.size() == 0 )
{
std::cerr << "Cannot find SourceDirectory key in the DartConfiguration.tcl" << std::endl;
return;
@@ -293,7 +297,34 @@ void ctest::UpdateDirectory()
int retVal;
bool res = cmSystemTools::RunCommand(command.c_str(), output,
retVal, sourceDirectory.c_str(),
- true);
+ m_Verbose);
+ if (! res || retVal )
+ {
+ std::cerr << "Error(s) when updating the project" << std::endl;
+ }
+}
+
+void ctest::ConfigureDirectory()
+{
+ std::string cCommand = m_DartConfiguration["ConfigureCommand"];
+ if ( cCommand.size() == 0 )
+ {
+ std::cerr << "Cannot find ConfigureCommand key in the DartConfiguration.tcl" << std::endl;
+ return;
+ }
+
+ std::string buildDirectory = m_DartConfiguration["BuildDirectory"];
+ if ( buildDirectory.size() == 0 )
+ {
+ std::cerr << "Cannot find BuildDirectory key in the DartConfiguration.tcl" << std::endl;
+ return;
+ }
+
+ std::string output;
+ int retVal;
+ bool res = cmSystemTools::RunCommand(cCommand.c_str(), output,
+ retVal, buildDirectory.c_str(),
+ m_Verbose);
if (! res || retVal )
{
std::cerr << "Error(s) when updating the project" << std::endl;
@@ -308,10 +339,18 @@ void ctest::BuildDirectory()
std::cerr << "Cannot find MakeCommand key in the DartConfiguration.tcl" << std::endl;
return;
}
+ std::string buildDirectory = m_DartConfiguration["BuildDirectory"];
+ if ( buildDirectory.size() == 0 )
+ {
+ std::cerr << "Cannot find BuildDirectory key in the DartConfiguration.tcl" << std::endl;
+ return;
+ }
+
std::string output;
int retVal;
bool res = cmSystemTools::RunCommand(makeCommand.c_str(), output,
- retVal, 0, true);
+ retVal, buildDirectory.c_str(),
+ m_Verbose);
if (! res || retVal )
{
std::cerr << "Error(s) when building project" << std::endl;
@@ -577,6 +616,10 @@ int ctest::ProcessTests()
{
this->UpdateDirectory();
}
+ if ( m_Tests[CONFIGURE_TEST] || m_Tests[ALL_TEST] )
+ {
+ this->ConfigureDirectory();
+ }
if ( m_Tests[BUILD_TEST] || m_Tests[ALL_TEST] )
{
this->BuildDirectory();
diff --git a/Source/ctest.h b/Source/ctest.h
index a427e7b..23c59b6 100644
--- a/Source/ctest.h
+++ b/Source/ctest.h
@@ -50,6 +50,11 @@ public:
void UpdateDirectory();
/**
+ * Do configure the project
+ */
+ void ConfigureDirectory();
+
+ /**
* Run the test for a directory and any subdirectories
*/
void ProcessDirectory(std::vector<std::string> &passed,
@@ -90,6 +95,7 @@ private:
enum {
FIRST_TEST = 0,
UPDATE_TEST,
+ CONFIGURE_TEST,
BUILD_TEST,
TEST_TEST,
COVERAGE_TEST,