diff options
Diffstat (limited to 'Source/CTest')
-rw-r--r-- | Source/CTest/cmCTestTestHandler.cxx | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx index d314052..f6dede8 100644 --- a/Source/CTest/cmCTestTestHandler.cxx +++ b/Source/CTest/cmCTestTestHandler.cxx @@ -82,17 +82,20 @@ bool cmCTestSubdirCommand for ( it = args.begin(); it != args.end(); ++ it ) { cmSystemTools::ChangeDirectory(cwd.c_str()); - std::string fname = cwd; - fname += "/"; - fname += *it; + std::string fname; - //sanity check on relative path; if not, try absolute path - if ( !cmSystemTools::FileIsDirectory(fname.c_str())) + if(cmSystemTools::FileIsFullPath(it->c_str())) { fname = *it; } + else + { + fname = cwd; + fname += "/"; + fname += *it; + } - if ( !cmSystemTools::FileExists(fname.c_str()) ) + if ( !cmSystemTools::FileIsDirectory(fname.c_str()) ) { // No subdirectory? So what... continue; |