# HG changeset patch
# User Kevin Bullock <kbullock@ringworld.org>
# Date 1360351976 0
#      Fri Feb 08 19:32:56 2013 +0000
# Node ID 667063b22a69915ce39c737844bd9904bdc0e743
# Parent  4db9e31ae6055cc5ee01a50e6466dd94b436b412
check-code: warn to use killdaemons instead of kill `cat PIDFILE`

We have a bunch of tests that still use

    kill `cat hg.pid`

or worse,

    kill `cat hg.pid`; while kill -0 `cat hg.pid`; sleep 0; done

Cleaning these up to use tests/killdaemons.py is non-trivial, so for now
we just add a warning.

diff --git a/contrib/check-code.py b/contrib/check-code.py
--- a/contrib/check-code.py
+++ b/contrib/check-code.py
@@ -80,6 +80,7 @@
     (r'^diff.*-\w*N', "don't use 'diff -N'"),
     (r'\$PWD|\${PWD}', "don't use $PWD, use `pwd`"),
     (r'^([^"\'\n]|("[^"\n]*")|(\'[^\'\n]*\'))*\^', "^ must be quoted"),
+    (r'kill (`|\$\()', "don't use kill, use killdaemons.py")
   ]
 ]
 
diff --git a/tests/test-check-code-hg.t b/tests/test-check-code-hg.t
--- a/tests/test-check-code-hg.t
+++ b/tests/test-check-code-hg.t
@@ -9,3 +9,45 @@
 New errors are not allowed. Warnings are strongly discouraged.
 
   $ hg manifest | xargs "$check_code" --warnings --nolineno --per-file=0
+  tests/test-hgweb-raw.t:0:
+   >   $ while kill `cat hg.pid` 2>/dev/null; do sleep 0; done
+   don't use kill, use killdaemons.py
+   don't use kill, use killdaemons.py
+  tests/test-https.t:0:
+   >   $ while kill `cat hg1.pid` 2>/dev/null; do sleep 0; done
+   don't use kill, use killdaemons.py
+  tests/test-inotify-debuginotify.t:0:
+   >   $ kill `cat hg.pid`
+   don't use kill, use killdaemons.py
+  tests/test-inotify-issue1371.t:0:
+   >   $ kill `cat hg.pid`
+   don't use kill, use killdaemons.py
+  tests/test-inotify-issue1542.t:0:
+   >   $ kill `cat hg.pid`
+   don't use kill, use killdaemons.py
+  tests/test-inotify-issue1556.t:0:
+   >   $ kill `cat hg.pid`
+   don't use kill, use killdaemons.py
+  tests/test-inotify-lookup.t:0:
+   >   $ kill `cat .hg/inotify.pid`
+   don't use kill, use killdaemons.py
+  tests/test-inotify.t:0:
+   >   $ kill `cat ../hg2.pid`
+   don't use kill, use killdaemons.py
+  tests/test-inotify.t:0:
+   >   $ kill `cat hg.pid`
+   don't use kill, use killdaemons.py
+  tests/test-inotify.t:0:
+   >   $ kill `cat hg3.pid`
+   don't use kill, use killdaemons.py
+  tests/test-obsolete.t:0:
+   >   $ kill `cat hg.pid`
+   don't use kill, use killdaemons.py
+   don't use kill, use killdaemons.py
+  tests/test-serve.t:0:
+   >   >        kill `cat hg.pid`
+   don't use kill, use killdaemons.py
+  tests/test-serve.t:0:
+   >   >        kill `cat hg.pid` 2>/dev/null
+   don't use kill, use killdaemons.py
+  [1]