changeset 5088:7e2385a31933

hghave: detect executable permission availability.
author Patrick Mezard <pmezard@gmail.com>
date Mon, 06 Aug 2007 10:26:04 +0200
parents 1b970cdab695
children 4cd52978e188
files tests/hghave
diffstat 1 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/tests/hghave
+++ b/tests/hghave
@@ -5,6 +5,7 @@ if all features are there, non-zero othe
 import optparse
 import os
 import sys
+import tempfile
 
 def has_symlink():
     return hasattr(os, "symlink")
@@ -12,9 +13,20 @@ def has_symlink():
 def has_fifo():
     return hasattr(os, "mkfifo")
 
+def has_executablebit():
+    fd, path = tempfile.mkstemp()
+    os.close(fd)
+    try:
+        s = os.lstat(path).st_mode
+        os.chmod(path, s | 0100)
+        return (os.lstat(path).st_mode & 0100 != 0)
+    finally:
+        os.remove(path)
+
 checks = {
     "symlink": (has_symlink, "symbolic links"),
     "fifo": (has_fifo, "named pipes"),
+    "execbit": (has_executablebit, "executable bit"),
 }
 
 def list_features():