summaryrefslogtreecommitdiffstats
path: root/Source/CTest/cmCTestTestHandler.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/CTest/cmCTestTestHandler.cxx')
-rw-r--r--Source/CTest/cmCTestTestHandler.cxx15
1 files changed, 9 insertions, 6 deletions
diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx
index a32a335..2491d19 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;