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

timeless timeless at mozdev.org
Tue Dec 22 05:18:06 CST 2015


# HG changeset patch
# User timeless <timeless at mozdev.org>
# Date 1450782356 0
#      Tue Dec 22 11:05:56 2015 +0000
# Node ID eba93bae90fd0489a2935caf1a917ddcf3c721a2
# Parent  e394811e1af32bd177e2429baea8c7d623491ff0
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
+
+  $ 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