diff --git a/Source/cmAddTestCommand.cxx b/Source/cmAddTestCommand.cxx index 72a6e9325..a9165f5b1 100644 --- a/Source/cmAddTestCommand.cxx +++ b/Source/cmAddTestCommand.cxx @@ -74,8 +74,7 @@ bool cmAddTestCommand::HandleNameMode(std::vector const& args) { std::string name; std::vector configurations; - std::string working_directory = this->Makefile->GetCurrentOutputDirectory(); - bool working_directory_set = false; + std::string working_directory; std::vector command; // Read the arguments. @@ -109,13 +108,12 @@ bool cmAddTestCommand::HandleNameMode(std::vector const& args) } else if(args[i] == "WORKING_DIRECTORY") { - if(working_directory_set) + if(!working_directory.empty()) { this->SetError(" may be given at most one WORKING_DIRECTORY."); return false; } doing = DoingWorkingDirectory; - working_directory_set = true; } else if(doing == DoingName) { @@ -172,7 +170,10 @@ bool cmAddTestCommand::HandleNameMode(std::vector const& args) cmTest* test = this->Makefile->CreateTest(name.c_str()); test->SetOldStyle(false); test->SetCommand(command); - test->SetProperty("WORKING_DIRECTORY", working_directory.c_str()); + if(!working_directory.empty()) + { + test->SetProperty("WORKING_DIRECTORY", working_directory.c_str()); + } this->Makefile->AddTestGenerator(new cmTestGenerator(test, configurations)); return true;