X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Frun_tests.sh;h=c9c4906cf7c6253f2a49923ad6f1340211b1204e;hb=0ae40112b9e0f2c42e89e14e9abe7d866c63d36a;hp=22309ecadbe5c74346cb7747dc506144d414bfe2;hpb=070278ecb03b83bf3594953cc0dba189d8b77b0a;p=bertos.git diff --git a/bertos/run_tests.sh b/bertos/run_tests.sh index 22309eca..c9c4906c 100755 --- a/bertos/run_tests.sh +++ b/bertos/run_tests.sh @@ -1,17 +1,23 @@ #!/bin/bash # # Copyright 2005 Develer S.r.l. (http://www.develer.com/) -# All rights reserved. +# Copyright 2008 Bernie Innocenti # -# Author: Bernie Innocenti -# -# $Id$ +# Version: $Id$ +# Author: Bernie Innocenti # -VERBOSE=1 +# Testsuite output level: +# 0 - quiet +# 1 - progress output +# 2 - build warnings +# 3 - execution output +# 4 - build commands +VERBOSE=${VERBOSE:-1} CC=gcc -CFLAGS="-W -Wall -Wextra -Ibertos -Ibertos/emul -std=gnu99 -fno-builtin -D_DEBUG -D_TEST -DARCH=ARCH_EMUL" +#FIXME: -Ibertos/emul should not be needed +CFLAGS="-W -Wall -Wextra -Ibertos -Ibertos/emul -std=gnu99 -fno-builtin -D_DEBUG -DARCH=(ARCH_EMUL|ARCH_UNITTEST)" CXX=g++ CXXFLAGS="$CFLAGS" @@ -22,6 +28,16 @@ TESTS=${TESTS:-`find . \ TESTOUT="testout" +buildout='/dev/null' +runout='/dev/null' +[ "$VERBOSE" -ge 2 ] && buildout='/dev/stdout' +[ "$VERBOSE" -ge 3 ] && runout='/dev/stdout' + +# Needed to get build/exec result code rather than tee's +set -o pipefail + +rm -rf "${TESTOUT}.old" +mv -f "${TESTOUT}" "$TESTOUT.old" mkdir -p "$TESTOUT" for src in $TESTS; do @@ -34,10 +50,14 @@ for src in $TESTS; do esac [ $VERBOSE -gt 0 ] && echo "Building $name..." - $BUILDCMD 2>&1 | tee $name.build || echo "FAILED [BUILD]: $name" - - [ $VERBOSE -gt 0 ] && echo "Running $name..." - $exe 2>&1 | tee $name.out || echo "FAILED [RUN]: $name" - #rm -f "$exe" + [ $VERBOSE -gt 4 ] && echo " $BUILDCMD" + if $BUILDCMD 2>&1 | tee >$buildout $TESTOUT/$name.build; then + [ $VERBOSE -gt 0 ] && echo "Running $name..." + if ! $exe 2>&1 | tee >$runout $TESTOUT/$name.out; then + echo "FAILED [RUN]: $name" + fi + else + echo "FAILED [BUILD]: $name" + fi done