Patchwork tests: add test-check-execute.t

login
register
mail settings
Submitter timeless@mozdev.org
Date Dec. 30, 2015, 5:05 a.m.
Message ID <d75a79286b556d64545f.1451451953@waste.org>
Download mbox | patch
Permalink /patch/12414/
State Superseded
Headers show

Comments

timeless@mozdev.org - Dec. 30, 2015, 5:05 a.m.
# HG changeset patch
# User timeless <timeless@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

Patch

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
+