ENH: add more testing
This commit is contained in:
parent
3a3b55679b
commit
047c7b5af4
|
@ -68,8 +68,12 @@ IF(BUILD_TESTING)
|
|||
${CMake_BINARY_DIR}/Source/cmaketest.h ESCAPE_QUOTES)
|
||||
ADD_TEST(simple ${CMake_BINARY_DIR}/Source/cmaketest
|
||||
${CMake_SOURCE_DIR}/Tests/Simple
|
||||
${CMake_BINARY_DIR}/Tests/Simple simple
|
||||
)
|
||||
${CMake_BINARY_DIR}/Tests/Simple simple )
|
||||
ADD_TEST(complex ${CMake_BINARY_DIR}/Source/cmaketest
|
||||
${CMake_SOURCE_DIR}/Tests/Complex
|
||||
${CMake_BINARY_DIR}/Tests/Complex
|
||||
complex
|
||||
${CMake_BINARY_DIR}/Tests/Complex/bin )
|
||||
|
||||
ENDIF (DART_ROOT)
|
||||
ENDIF(BUILD_TESTING)
|
||||
|
|
|
@ -131,7 +131,9 @@ inline bool operator==(std::string const& a, const char* b)
|
|||
{ return (a==std::string(b)); }
|
||||
# endif // end CM_SGI_CC_720
|
||||
|
||||
|
||||
// use this class to shring the size of symbols in .o files
|
||||
// std::string is really basic_string<....lots of stuff....>
|
||||
// when combined with a map or set, the symbols can be > 2000 chars!
|
||||
struct cmStdString : public std::string
|
||||
{
|
||||
typedef std::string Parent;
|
||||
|
|
|
@ -15,6 +15,14 @@ int main (int argc, char *argv[])
|
|||
{
|
||||
cmSystemTools::MakeDirectory(argv[2]);
|
||||
}
|
||||
const char* sourceDirectory = argv[1];
|
||||
const char* binaryDirectory = argv[2];
|
||||
const char* executableName = argv[3];
|
||||
const char* executableDirectory = "";
|
||||
if(argc > 4)
|
||||
{
|
||||
executableDirectory = argv[4];
|
||||
}
|
||||
|
||||
/**
|
||||
* Run an executable command and put the stdout in output.
|
||||
|
@ -23,10 +31,10 @@ int main (int argc, char *argv[])
|
|||
|
||||
// change to the tests directory and run cmake
|
||||
std::string cwd = cmSystemTools::GetCurrentWorkingDirectory();
|
||||
cmSystemTools::ChangeDirectory(argv[2]);
|
||||
cmSystemTools::ChangeDirectory(binaryDirectory);
|
||||
std::string ccmd = CMAKE_COMMAND;
|
||||
ccmd += " ";
|
||||
ccmd += argv[1];
|
||||
ccmd += sourceDirectory;
|
||||
if (!cmSystemTools::RunCommand(ccmd.c_str(), output))
|
||||
{
|
||||
std::cerr << "Error: cmake execution failed\n";
|
||||
|
@ -39,7 +47,7 @@ int main (int argc, char *argv[])
|
|||
// now build the test
|
||||
std::string makeCommand = MAKEPROGRAM;
|
||||
makeCommand += " ";
|
||||
makeCommand += argv[3];
|
||||
makeCommand += executableName;
|
||||
#ifdef _WIN32
|
||||
makeCommand += ".dsw /MAKE \"ALL_BUILD - Release\" /REBUILD";
|
||||
#endif
|
||||
|
@ -55,20 +63,19 @@ int main (int argc, char *argv[])
|
|||
// now run the compiled test if we can find it
|
||||
// See if the executable exists as written.
|
||||
std::string fullPath;
|
||||
if(cmSystemTools::FileExists(argv[3]))
|
||||
if(cmSystemTools::FileExists(executableName))
|
||||
{
|
||||
fullPath = cmSystemTools::CollapseFullPath(argv[3]);
|
||||
fullPath = cmSystemTools::CollapseFullPath(executableName);
|
||||
}
|
||||
std::string tryPath = argv[3];
|
||||
std::string tryPath = executableName;
|
||||
tryPath += cmSystemTools::GetExecutableExtension();
|
||||
if(cmSystemTools::FileExists(tryPath.c_str()))
|
||||
{
|
||||
fullPath = cmSystemTools::CollapseFullPath(tryPath.c_str());
|
||||
}
|
||||
|
||||
// try the release extension
|
||||
tryPath = "Release/";
|
||||
tryPath += cmSystemTools::GetFilenameName(argv[3]);
|
||||
tryPath += cmSystemTools::GetFilenameName(executableName);
|
||||
if(cmSystemTools::FileExists(tryPath.c_str()))
|
||||
{
|
||||
fullPath = cmSystemTools::CollapseFullPath(tryPath.c_str());
|
||||
|
@ -78,7 +85,22 @@ int main (int argc, char *argv[])
|
|||
{
|
||||
fullPath = cmSystemTools::CollapseFullPath(tryPath.c_str());
|
||||
}
|
||||
|
||||
tryPath = executableDirectory;
|
||||
tryPath += "/";
|
||||
tryPath += executableName;
|
||||
tryPath += cmSystemTools::GetExecutableExtension();
|
||||
if(cmSystemTools::FileExists(tryPath.c_str()))
|
||||
{
|
||||
fullPath = cmSystemTools::CollapseFullPath(tryPath.c_str());
|
||||
}
|
||||
tryPath = executableDirectory;
|
||||
tryPath += "/Release/";
|
||||
tryPath += executableName;
|
||||
tryPath += cmSystemTools::GetExecutableExtension();
|
||||
if(cmSystemTools::FileExists(tryPath.c_str()))
|
||||
{
|
||||
fullPath = cmSystemTools::CollapseFullPath(tryPath.c_str());
|
||||
}
|
||||
if (!cmSystemTools::RunCommand(fullPath.c_str(), output))
|
||||
{
|
||||
std::cerr << "Error: " << fullPath.c_str() << " execution failed\n";
|
||||
|
|
|
@ -117,7 +117,7 @@ void ctest::ProcessDirectory(int &passed, int &failed)
|
|||
nwd += *j;
|
||||
if (cmSystemTools::FileIsDirectory(nwd.c_str()))
|
||||
{
|
||||
cerr << "Changing directory into " << nwd.c_str() << "\n";
|
||||
std::cerr << "Changing directory into " << nwd.c_str() << "\n";
|
||||
cmSystemTools::ChangeDirectory(nwd.c_str());
|
||||
this->ProcessDirectory(passed,failed);
|
||||
}
|
||||
|
@ -128,7 +128,7 @@ void ctest::ProcessDirectory(int &passed, int &failed)
|
|||
|
||||
if (name == "ADD_TEST")
|
||||
{
|
||||
cerr << "Testing " << args[0] << " ... ";
|
||||
std::cerr << "Testing " << args[0] << " ... ";
|
||||
// find the test executable
|
||||
std::string testCommand = this->FindExecutable(args[1].c_str());
|
||||
// add the arguments
|
||||
|
|
Loading…
Reference in New Issue