tests/hghave
changeset 5088 7e2385a31933
parent 5086 4cf6f8dbd1b4
child 5090 e86788af599a
--- 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():