diff options
-rw-r--r-- | Source/cmAddTestCommand.cxx | 40 | ||||
-rw-r--r-- | Source/cmAddTestCommand.h | 4 |
2 files changed, 25 insertions, 19 deletions
diff --git a/Source/cmAddTestCommand.cxx b/Source/cmAddTestCommand.cxx index 2f06b4f..e7d16b4 100644 --- a/Source/cmAddTestCommand.cxx +++ b/Source/cmAddTestCommand.cxx @@ -78,28 +78,32 @@ void cmAddTestCommand::FinalPass() fname += "/"; fname += "DartTestfile.txt"; - // Open the output Testfile - std::ofstream fout(fname.c_str(), std::ios::app); - if (!fout) + + // If the file doesn't exist, then ENABLE_TESTING hasn't been run + if (cmSystemTools::FileExists(fname.c_str())) { - cmSystemTools::Error("Error Writing ", fname.c_str()); - return; - } + // Open the output Testfile + std::ofstream fout(fname.c_str(), std::ios::app); + if (!fout) + { + cmSystemTools::Error("Error Writing ", fname.c_str()); + return; + } - std::vector<std::string>::iterator it; + std::vector<std::string>::iterator it; // for each arg in the test - fout << "ADD_TEST("; - it = m_Args.begin(); - fout << (*it).c_str(); - ++it; - for (; it != m_Args.end(); ++it) - { - fout << " " << (*it).c_str(); - } - fout << ")" << std::endl; - fout.close(); - + fout << "ADD_TEST("; + it = m_Args.begin(); + fout << (*it).c_str(); + ++it; + for (; it != m_Args.end(); ++it) + { + fout << " " << (*it).c_str(); + } + fout << ")" << std::endl; + fout.close(); + } return; } diff --git a/Source/cmAddTestCommand.h b/Source/cmAddTestCommand.h index 6137072..6f0e272 100644 --- a/Source/cmAddTestCommand.h +++ b/Source/cmAddTestCommand.h @@ -92,7 +92,9 @@ public: { return "ADD_TEST(testname exename arg1 arg2 arg3 ...)\n" - "This command adds a test target to the current directory. " + "If the ENABLE_TESTING command has been run, this command adds a" + "test target to the current directory. If ENABLE_TESTING has not" + "been run, this command does nothing.\n" "The tests are run by the testing subsystem by executing exename " "with the specified arguments. exename can be either an executable " "built by built by this project or an arbitrary executable on the " |