瀏覽代碼

ENH: Only look for executable until found

Andy Cedilnik 22 年之前
父節點
當前提交
b4bf41434c
共有 2 個文件被更改,包括 58 次插入57 次删除
  1. 55 55
      Source/cmCTest.cxx
  2. 3 2
      Source/kwsys/SystemTools.cxx

+ 55 - 55
Source/cmCTest.cxx

@@ -4095,61 +4095,61 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
   else
     {
     failed.push_back(m_TestCommand);
-    }
-  std::string tryPath = m_TestCommand;
-  tryPath += cmSystemTools::GetExecutableExtension();
-  if(cmSystemTools::FileExists(tryPath.c_str()))
-    {
-    fullPath = cmSystemTools::CollapseFullPath(tryPath.c_str());
-    }
-  else
-    {
-    failed.push_back(tryPath);
-    }
-  // try the Debug extension
-  tryPath = m_ConfigType + "/";
-  tryPath += cmSystemTools::GetFilenameName(m_TestCommand);
-  if(cmSystemTools::FileExists(tryPath.c_str()))
-    {
-    fullPath = cmSystemTools::CollapseFullPath(tryPath.c_str());
-    }
-  else
-    {
-    failed.push_back(tryPath);
-    }
-  tryPath += cmSystemTools::GetExecutableExtension();
-  if(cmSystemTools::FileExists(tryPath.c_str()))
-    {
-    fullPath = cmSystemTools::CollapseFullPath(tryPath.c_str());
-    }
-  else
-    {
-    failed.push_back(tryPath);
-    }
-  tryPath = m_ExecutableDirectory;
-  tryPath += "/";
-  tryPath += m_TestCommand;
-  tryPath += cmSystemTools::GetExecutableExtension();
-  if(cmSystemTools::FileExists(tryPath.c_str()))
-    {
-    fullPath = cmSystemTools::CollapseFullPath(tryPath.c_str());
-    }
-  else
-    {
-    failed.push_back(tryPath);
-    }
-  tryPath = m_ExecutableDirectory;
-  tryPath += "/";
-  tryPath += m_ConfigType + "/";
-  tryPath += m_TestCommand;
-  tryPath += cmSystemTools::GetExecutableExtension();
-  if(cmSystemTools::FileExists(tryPath.c_str()))
-    {
-    fullPath = cmSystemTools::CollapseFullPath(tryPath.c_str());
-    }
-  else
-    {
-    failed.push_back(tryPath);
+    std::string tryPath = m_TestCommand;
+    tryPath += cmSystemTools::GetExecutableExtension();
+    if(cmSystemTools::FileExists(tryPath.c_str()))
+      {
+      fullPath = cmSystemTools::CollapseFullPath(tryPath.c_str());
+      }
+    else
+      {
+      failed.push_back(tryPath);
+      // try the Debug extension
+      tryPath = m_ConfigType + "/";
+      tryPath += cmSystemTools::GetFilenameName(m_TestCommand);
+      if(cmSystemTools::FileExists(tryPath.c_str()))
+        {
+        fullPath = cmSystemTools::CollapseFullPath(tryPath.c_str());
+        }
+      else
+        {
+        failed.push_back(tryPath);
+        tryPath += cmSystemTools::GetExecutableExtension();
+        if(cmSystemTools::FileExists(tryPath.c_str()))
+          {
+          fullPath = cmSystemTools::CollapseFullPath(tryPath.c_str());
+          }
+        else
+          {
+          failed.push_back(tryPath);
+          tryPath = m_ExecutableDirectory;
+          tryPath += "/";
+          tryPath += m_TestCommand;
+          tryPath += cmSystemTools::GetExecutableExtension();
+          if(cmSystemTools::FileExists(tryPath.c_str()))
+            {
+            fullPath = cmSystemTools::CollapseFullPath(tryPath.c_str());
+            }
+          else
+            {
+            failed.push_back(tryPath);
+            tryPath = m_ExecutableDirectory;
+            tryPath += "/";
+            tryPath += m_ConfigType + "/";
+            tryPath += m_TestCommand;
+            tryPath += cmSystemTools::GetExecutableExtension();
+            if(cmSystemTools::FileExists(tryPath.c_str()))
+              {
+              fullPath = cmSystemTools::CollapseFullPath(tryPath.c_str());
+              }
+            else
+              {
+              failed.push_back(tryPath);
+              }
+            }
+          }
+        }
+      }
     }
   if(!cmSystemTools::FileExists(fullPath.c_str()))
     {

+ 3 - 2
Source/kwsys/SystemTools.cxx

@@ -626,8 +626,9 @@ bool SystemTools::SameFile(const char* file1, const char* file2)
 // return true if the file exists
 bool SystemTools::FileExists(const char* filename)
 {
-  struct stat fs;
-  if (stat(filename, &fs) != 0) 
+//  struct stat fs;
+//  if (stat(filename, &fs) != 0) 
+  if ( access(filename, F_OK) != 0 )
     {
     return false;
     }