[PATCH] tests: add test-check-execute.t

timeless timeless at mozdev.org
Wed Dec 30 05:05:53 UTC 2015


# HG changeset patch
# User timeless <timeless at mozdev.org>
# Date 1450782356 0
#      Tue Dec 22 11:05:56 2015 +0000
# Node ID d75a79286b556d64545fa0904d4411fc57aaf6ab
# Parent  23541bdd1610c08af247f9c8719045cf247ce541
tests: add test-check-execute.t

Try to prevent people from adding files with incorrect execute bits

diff --git a/tests/test-check-execute.t b/tests/test-check-execute.t
new file mode 100644
--- /dev/null
+++ b/tests/test-check-execute.t
@@ -0,0 +1,34 @@
+#require test-repo execbit
+
+  $ cd "`dirname "$TESTDIR"`"
+
+look for python scripts without the execute bit
+
+  $ hg files "set:(**.py) and not exec()" 2> /dev/null | \
+  > xargs -n1 egrep -n -H "(env |/)python"|grep ":1:" | \
+  > cat
+
+look for python scripts with execute bit but not shbang
+
+  $ hg files "set:(**.py) and exec()" 2> /dev/null | \
+  > xargs -n1 egrep -n -L "^#!.*(env |/)python" | \
+  > cat
+
+look for shell scripts with execute bit but not shbang
+
+  $ hg files "set:(**.sh) and exec()" 2> /dev/null | \
+  > xargs -n1 egrep -n -L "^#!.*(env |/)(ba|)sh" | \
+  > cat
+
+look for shell scripts with execute bit and no shbang on first line
+
+  $ for a in `hg files "set:exec() and (**.sh)" 2> /dev/null`; \
+  > do head -1 $a|grep "#!" > /dev/null|| echo $a; \
+  > done
+
+look for non scripts with no shbang
+
+  $ for a in `hg files "set:exec() and not (**.sh) and not (**.py)" 2> /dev/null`; \
+  > do head -1 $a|grep "#!" > /dev/null|| echo $a; \
+  > done
+


More information about the Mercurial-devel mailing list