automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FYI] {master} maintcheck: whitelist some false positives


From: Stefano Lattarini
Subject: [FYI] {master} maintcheck: whitelist some false positives
Date: Thu, 16 Feb 2012 18:45:39 +0100

Instead of tweaking or dumbing down some of our sources or tests
in order not to make them spuriously trigger few maintainer checks,
we tweak such checks instead.

* syntax-checks.mk (sc_tests_overriding_macros_on_cmdline): Also
allow the variable 'exp' to be overridden on the make command line.
Whitelist the test 'make-dryrun.test' where appropriate.
(sc_mkinstalldirs): When whitelisting the 'mkinstalldirs' occurrence
in 'lib/Makefile.am', do not look for the exact line number: it is
obviously too fragile.
---
 syntax-checks.mk |   21 ++++++++++++++++-----
 1 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/syntax-checks.mk b/syntax-checks.mk
index 0f01114..13531bd 100644
--- a/syntax-checks.mk
+++ b/syntax-checks.mk
@@ -207,7 +207,7 @@ sc_no_for_variable_in_macro:
 sc_mkinstalldirs:
        @if grep -n 'mkinstalldirs' $(ams) \
              | grep -F -v '$$(mkinstalldirs)' \
-             | grep -v '^\./lib/Makefile.am:37:  *mkinstalldirs \\$$'; \
+             | grep -v '^\./lib/Makefile.am:[0-9][0-9]*:  *mkinstalldirs 
\\$$'; \
        then \
          echo "Found incorrect use of mkinstalldirs in the lines above" 1>&2; \
          exit 1; \
@@ -458,6 +458,8 @@ sc_tests_tap_plan:
 ## exception, POSIX says it can't come from the environment.  V, DESTDIR,
 ## DISTCHECK_CONFIGURE_FLAGS and DISABLE_HARD_ERRORS are exceptions, too,
 ## as package authors are urged not to initialize them anywhere.
+## Finally, 'exp' is used by some ad-hoc checks, where we ensure it's
+## ok to override it from the command line.
 sc_tests_overriding_macros_on_cmdline:
        @if grep -E '\$$MAKE .*(SHELL=.*=|=.*SHELL=)' $(xtests); then \
          echo 'Rewrite "$$MAKE foo=bar SHELL=$$SHELL" as "foo=bar $$MAKE -e 
SHELL=$$SHELL"' 1>&2; \
@@ -465,15 +467,24 @@ sc_tests_overriding_macros_on_cmdline:
          exit 1; \
        fi
 # The first s/// tries to account for usages like "$MAKE || st=$?".
-# DISTCHECK_CONFIGURE_FLAGS is allowed to contain whitespace in its
-# definition, hence the more complex last three substitutions below.
-       @if sed -e 's/ || .*//' -e 's/ && .*//' \
+# 'DISTCHECK_CONFIGURE_FLAGS' and 'exp' are allowed to contain whitespace in
+# their definitions, hence the more complex last three substitutions below.
+# Also, the 'make-dryrun.test' is whitelisted, since there we need to
+# override variables from the command line in order to cover the expected
+# code paths.
+       @tests=`for t in $(xtests); do \
+                 case $$t in */make-dryrun.test);; *) echo $$t;; esac; \
+               done`; \
+       if sed -e 's/ || .*//' -e 's/ && .*//' \
                -e 's/ DESTDIR=[^ ]*/ /' -e 's/ SHELL=[^ ]*/ /' \
                -e 's/ V=[^ ]*/ /' -e 's/ DISABLE_HARD_ERRORS=[^ ]*/ /' \
                -e "s/ DISTCHECK_CONFIGURE_FLAGS='[^']*'/ /" \
                -e 's/ DISTCHECK_CONFIGURE_FLAGS="[^"]*"/ /' \
                -e 's/ DISTCHECK_CONFIGURE_FLAGS=[^ ]/ /' \
-             $(xtests) | grep '\$$MAKE .*='; then \
+               -e "s/ exp='[^']*'/ /" \
+               -e 's/ exp="[^"]*"/ /' \
+               -e 's/ exp=[^ ]/ /' \
+             $$tests | grep '\$$MAKE .*='; then \
          echo 'Rewrite "$$MAKE foo=bar" as "foo=bar $$MAKE -e" in the above 
lines,' 1>&2; \
          echo 'it is more portable.' 1>&2; \
          exit 1; \
-- 
1.7.9




reply via email to

[Prev in Thread] Current Thread [Next in Thread]