diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2001-08-23 20:00:46 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2001-08-23 20:00:46 (GMT) |
commit | 047c7b5af487a4752a0ee39c0fc841e4102d7756 (patch) | |
tree | 92aa3f1abb45ea10731f54563d3b03aca51a0d89 /Source/cmaketest.cxx | |
parent | 3a3b55679b1c28ac4d7c24c2de2ce28d88a3d21c (diff) | |
download | CMake-047c7b5af487a4752a0ee39c0fc841e4102d7756.zip CMake-047c7b5af487a4752a0ee39c0fc841e4102d7756.tar.gz CMake-047c7b5af487a4752a0ee39c0fc841e4102d7756.tar.bz2 |
ENH: add more testing
Diffstat (limited to 'Source/cmaketest.cxx')
-rw-r--r-- | Source/cmaketest.cxx | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/Source/cmaketest.cxx b/Source/cmaketest.cxx index c59dea6..666acf3 100644 --- a/Source/cmaketest.cxx +++ b/Source/cmaketest.cxx @@ -15,7 +15,15 @@ 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"; |