lint: create two classes of tests, stable and dev
authorPatrick Georgi <patrick@georgi-clan.de>
Sat, 25 Feb 2012 18:42:59 +0000 (19:42 +0100)
committerPatrick Georgi <patrick@georgi-clan.de>
Wed, 29 Feb 2012 23:04:21 +0000 (00:04 +0100)
We have tests that pass (and should be enforced soonish) and those
that don't pass yet (and thus shouldn't break the build).

The plan is simple: As soon as a test passes, it's marked stable so
things remain that way.

"make lint" runs all tests,
"make lint-stable" runs only those that shouldn't fail.

Change-Id: Iaa85d71141606d9756e29b37c7a34c2a15e573ac
Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
Reviewed-on: http://review.coreboot.org/681
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Makefile.inc
util/lint/lint-002-build-dir-handling [deleted file]
util/lint/lint-003-whitespace [deleted file]
util/lint/lint-stable-002-build-dir-handling [new file with mode: 0755]
util/lint/lint-stable-003-whitespace [new file with mode: 0755]

index e12cc923924edb20f727308837dc022aa52c5786..0f040e91b51f3bd1b87816c46075b074b1704856 100644 (file)
@@ -34,7 +34,7 @@ coreboot: $(obj)/coreboot.rom
 
 #######################################################################
 # our phony targets
-PHONY+= clean-abuild coreboot
+PHONY+= clean-abuild coreboot lint lint-stable
 
 #######################################################################
 # root source directories of coreboot
@@ -218,9 +218,9 @@ printcrt0s:
 update:
        dongle.py -c /dev/term/1 $(obj)/coreboot.rom EOF
 
-lint:
+lint lint-stable:
        FAILED=0; LINTLOG=`mktemp`; \
-       for script in util/lint/lint-*; do \
+       for script in util/lint/$@-*; do \
                echo; echo `basename $$script`; \
                grep "^# DESCR:" $$script | sed "s,.*DESCR: *,," ; \
                echo ========; \
diff --git a/util/lint/lint-002-build-dir-handling b/util/lint/lint-002-build-dir-handling
deleted file mode 100755 (executable)
index c4f57d6..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/sh
-# This file is part of the coreboot project.
-#
-# Copyright (C) 2011 Patrick Georgi <patrick@georgi-clan.de>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# DESCR: Check that build directories can be chosen freely
-
-# $1: command to test for GNU make
-search_make() {
-if [ -n "`$1 --version 2>&1 |grep GNU`" ]; then MAKE=$1; fi
-}
-
-# if $1 and $2 differ, exit with failure
-compare_output() {
-if ! [ "$1" = "$2" ]; then
-       echo \'$1\' should be \'$2\'
-       exit 1
-fi
-}
-
-# $1: object directory
-run_printall() {
-$MAKE CONFIG_CCACHE=n CONFIG_SCANBUILD_ENABLE=n NOMKDIR=1 DOTCONFIG=$TMPCONFIG obj=$1 printall |sed -e "s,^ *,," -e "s, ,\n,g" -e "s,^ramstage-objs:=,," -e "s,mainboard/[^/]*/[^/]*/,.../," |grep "/static.*\.[co]" |sort |tr '\012\015' '  ' |sed -e "s,  *, ,g" -e "s, *$,,"
-}
-
-# find GNU make
-search_make make
-search_make gmake
-search_make gnumake
-
-if [ "$MAKE" = "" ]; then
-       echo Could not identify GNU make
-       exit 1
-fi
-
-# prepare a config to use
-TMPCONFIG=`mktemp .tmpconfig.XXXXXX`
-rm -f $TMPCONFIG
-$MAKE NOMKDIR=1 DOTCONFIG=$TMPCONFIG allyesconfig >/dev/null
-
-# look up parent directory
-PARENTDIR=`dirname $PWD`
-
-compare_output "`run_printall build`" "build/.../static.c build/.../static.ramstage.o"
-compare_output "`run_printall ../obj`" "$PARENTDIR/obj/.../static.c $PARENTDIR/obj/.../static.ramstage.o"
-compare_output "`run_printall /tmp`" "/tmp/.../static.c /tmp/.../static.ramstage.o"
-compare_output "`run_printall /../tmp`" "/tmp/.../static.c /tmp/.../static.ramstage.o"
-
-rm -f $TMPCONFIG
-
diff --git a/util/lint/lint-003-whitespace b/util/lint/lint-003-whitespace
deleted file mode 100755 (executable)
index fe305bf..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/sh
-# This file is part of the coreboot project.
-#
-# Copyright (C) 2011 Patrick Georgi <patrick@georgi-clan.de>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# DESCR: Check for superfluous whitespace in the tree
-
-LC_ALL=C export LC_ALL
-find src util -name .svn -type d -prune -o \
-       -name .git -type d -prune -o \
-       -name README -prune -o \
-       -name LICENSE -prune -o \
-       -name TODO -prune -o \
-       -name COPYING -prune -o \
-       -name \*.txt -prune -o \
-       -name microcode-\*.h -prune -o \
-       -name \*.?_shipped -prune -o \
-       -name \*.[18] -prune -o \
-       -name kconfig -type d -prune -o \
-       -name romcc -type d -prune -o \
-       -name crossgcc -type d -prune -o \
-       -name vendorcode -type d -prune -o \
-       -type f -exec \
-               grep -l "[[:space:]][[:space:]]*$" {} + | \
-       sed -e "s,^.*$,File & has lines ending with whitespace.,"
-
diff --git a/util/lint/lint-stable-002-build-dir-handling b/util/lint/lint-stable-002-build-dir-handling
new file mode 100755 (executable)
index 0000000..c4f57d6
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/sh
+# This file is part of the coreboot project.
+#
+# Copyright (C) 2011 Patrick Georgi <patrick@georgi-clan.de>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# DESCR: Check that build directories can be chosen freely
+
+# $1: command to test for GNU make
+search_make() {
+if [ -n "`$1 --version 2>&1 |grep GNU`" ]; then MAKE=$1; fi
+}
+
+# if $1 and $2 differ, exit with failure
+compare_output() {
+if ! [ "$1" = "$2" ]; then
+       echo \'$1\' should be \'$2\'
+       exit 1
+fi
+}
+
+# $1: object directory
+run_printall() {
+$MAKE CONFIG_CCACHE=n CONFIG_SCANBUILD_ENABLE=n NOMKDIR=1 DOTCONFIG=$TMPCONFIG obj=$1 printall |sed -e "s,^ *,," -e "s, ,\n,g" -e "s,^ramstage-objs:=,," -e "s,mainboard/[^/]*/[^/]*/,.../," |grep "/static.*\.[co]" |sort |tr '\012\015' '  ' |sed -e "s,  *, ,g" -e "s, *$,,"
+}
+
+# find GNU make
+search_make make
+search_make gmake
+search_make gnumake
+
+if [ "$MAKE" = "" ]; then
+       echo Could not identify GNU make
+       exit 1
+fi
+
+# prepare a config to use
+TMPCONFIG=`mktemp .tmpconfig.XXXXXX`
+rm -f $TMPCONFIG
+$MAKE NOMKDIR=1 DOTCONFIG=$TMPCONFIG allyesconfig >/dev/null
+
+# look up parent directory
+PARENTDIR=`dirname $PWD`
+
+compare_output "`run_printall build`" "build/.../static.c build/.../static.ramstage.o"
+compare_output "`run_printall ../obj`" "$PARENTDIR/obj/.../static.c $PARENTDIR/obj/.../static.ramstage.o"
+compare_output "`run_printall /tmp`" "/tmp/.../static.c /tmp/.../static.ramstage.o"
+compare_output "`run_printall /../tmp`" "/tmp/.../static.c /tmp/.../static.ramstage.o"
+
+rm -f $TMPCONFIG
+
diff --git a/util/lint/lint-stable-003-whitespace b/util/lint/lint-stable-003-whitespace
new file mode 100755 (executable)
index 0000000..fe305bf
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/sh
+# This file is part of the coreboot project.
+#
+# Copyright (C) 2011 Patrick Georgi <patrick@georgi-clan.de>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# DESCR: Check for superfluous whitespace in the tree
+
+LC_ALL=C export LC_ALL
+find src util -name .svn -type d -prune -o \
+       -name .git -type d -prune -o \
+       -name README -prune -o \
+       -name LICENSE -prune -o \
+       -name TODO -prune -o \
+       -name COPYING -prune -o \
+       -name \*.txt -prune -o \
+       -name microcode-\*.h -prune -o \
+       -name \*.?_shipped -prune -o \
+       -name \*.[18] -prune -o \
+       -name kconfig -type d -prune -o \
+       -name romcc -type d -prune -o \
+       -name crossgcc -type d -prune -o \
+       -name vendorcode -type d -prune -o \
+       -type f -exec \
+               grep -l "[[:space:]][[:space:]]*$" {} + | \
+       sed -e "s,^.*$,File & has lines ending with whitespace.,"
+