[PATCH 2 of 6] check-code: always report when a file is skipped by "no-check-code"

Simon Heimberg simohe at besonet.ch
Tue Jan 7 15:31:18 CST 2014


# HG changeset patch
# User Simon Heimberg <simohe at besonet.ch>
# Date 1389130155 -3600
#      Tue Jan 07 22:29:15 2014 +0100
# Node ID 661afe245eee6f739b52641878f87984baf06468
# Parent  0db2ed7afb31e2c6e2ca26c4f7ffbdf556759a15
check-code: always report when a file is skipped by "no-check-code"

Skipping an entire file generally from checking is an important event, so
report it always.
Do not tell the check name because skipping does not depend on it. Directly
skip the entire file instead of checking more patterns and skip again.

The pragma no-check-code was introduced by accident in the past. (Fixed in
e033a7d444ac and ee07f9d142c9.) This now is prevented because the files
to skip have to be listed in the test output of test-check-code-hg.t.

diff -r 0db2ed7afb31 -r 661afe245eee contrib/check-code.py
--- a/contrib/check-code.py	Tue Jan 07 22:28:45 2014 +0100
+++ b/contrib/check-code.py	Tue Jan 07 22:29:15 2014 +0100
@@ -442,10 +442,8 @@
         pre = post = fp.read()
         fp.close()
         if "no-" "check-code" in pre:
-            if debug:
-                print "Skipping %s for %s it has no-" "check-code" % (
-                       name, f)
-            break
+            print "Skipping %s it has no-" "check-code" % f
+            return "Skip" # skip checking this file
         for p, r in filters:
             post = re.sub(p, r, post)
         nerrs = len(pats[0]) # nerr elements are errors
diff -r 0db2ed7afb31 -r 661afe245eee tests/test-check-code-hg.t
--- a/tests/test-check-code-hg.t	Tue Jan 07 22:28:45 2014 +0100
+++ b/tests/test-check-code-hg.t	Tue Jan 07 22:29:15 2014 +0100
@@ -28,3 +28,8 @@
 
   $ { hg manifest 2>/dev/null; ls "$TESTTMP"/*.py | sed 's-\\-/-g'; } |
   >   xargs "$check_code" --warnings --per-file=0 || false
+  Skipping hgext/zeroconf/Zeroconf.py it has no-che?k-code (glob)
+  Skipping i18n/polib.py it has no-che?k-code (glob)
+  Skipping mercurial/httpclient/__init__.py it has no-che?k-code (glob)
+  Skipping mercurial/httpclient/_readers.py it has no-che?k-code (glob)
+  Skipping mercurial/httpclient/socketutil.py it has no-che?k-code (glob)


More information about the Mercurial-devel mailing list