From e304d5a31441705b6d7f58cfc509daec369eb5a5 Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Sat, 21 Nov 2009 17:01:30 +0000 Subject: [PATCH] Add a sanity check for coding style errors. --- Makefile.am | 2 +- examples/.gitignore | 1 + tests/check-build | 40 +++++++++++++++++++++++++++++++++++++--- 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/Makefile.am b/Makefile.am index 8904abb..a8a5147 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ # $Id$ -SUBDIRS = kernel caca src examples tests tools caca-sharp cxx python ruby doc +SUBDIRS = kernel caca src examples tools caca-sharp cxx python ruby doc tests DIST_SUBDIRS = $(SUBDIRS) win32 EXTRA_DIST = NOTES COPYING.GPL COPYING.ISC COPYING.LGPL bootstrap build-dos build-kernel build-win32 caca-config.in libcaca.spec libcaca.sln diff --git a/examples/.gitignore b/examples/.gitignore index 2d5c7a5..7f95e9f 100644 --- a/examples/.gitignore +++ b/examples/.gitignore @@ -23,5 +23,6 @@ swallow term text transform +trifiller truecolor unicode diff --git a/tests/check-build b/tests/check-build index a5f82c5..04df10b 100755 --- a/tests/check-build +++ b/tests/check-build @@ -1,10 +1,15 @@ #!/bin/sh -failure=0 +ret=0 + +# +# Check that the Win32 config.h is in sync with config.h.in +# config_h_in=$(dirname "$0")/../config.h.in win32_config_h=$(dirname "$0")/../win32/config.h +failure=0 for key in $(sed -ne 's/.*#undef *\([A-Za-z0-9_]*\).*/\1/p' "$config_h_in"); do if ! grep '[ef] \<'"$key"'\>' "$win32_config_h" >/dev/null 2>&1; then @@ -12,12 +17,41 @@ do failure=1 fi done - if test "$failure" != "0"; then - exit 1 + ret=1 else echo "0 errors in Win32 config.h" fi +# +# Check that we have no tabs or trailing spaces in the source code +# +failure=0 +for dir in caca cxx examples ruby tools; do + pushd ../$dir >/dev/null + # Dirty hack to print the $(SOURCES) variable + for x in $(make -s ID SHELL='echo @@$(SOURCES)@@' | tr -d '\n' | sed 's/.*@@\([^@]*\)@@.*/\1/'); + do + if grep '[[:space:]]$' "$x" >/dev/null 2>&1; then + echo "error: $dir/$x contains trailing spaces" + failure=1 + fi + if grep ' ' "$x" >/dev/null 2>&1; then + echo "error: $dir/$x contains tabs" + failure=1 + fi + done + popd >/dev/null +done +if test "$failure" != "0"; then + ret=1 +else + echo "0 errors in source code" +fi + +if test "$ret" != "0"; then + exit 1 +fi + exit 0