Nicer testsuite runner
[bertos.git] / bertos / run_tests.sh
1 #!/bin/bash
2 #
3 # Copyright 2005 Develer S.r.l. (http://www.develer.com/)
4 # All rights reserved.
5 #
6 # Author: Bernie Innocenti <bernie@codewiz.org>
7 #
8 # $Id$
9 #
10
11 VERBOSE=1
12
13 CC=gcc
14 CFLAGS="-W -Wall -Wextra -Ibertos -Ibertos/emul -std=gnu99 -fno-builtin -D_DEBUG -D_TEST -DARCH=ARCH_EMUL"
15
16 CXX=g++
17 CXXFLAGS="$CFLAGS"
18
19 TESTS=${TESTS:-`find . \
20         \( -name .svn -prune -o -name .git -prune -o -name .hg  -prune \) \
21         -o -name "*_test.c*" -print` }
22
23 TESTOUT="testout"
24
25 mkdir -p "$TESTOUT"
26
27 for src in $TESTS; do
28         name="`basename $src | sed -e 's/\.cpp$//' -e 's/\.c$//'`"
29         exe="./$TESTOUT/$name"
30
31         case "$src" in
32         *.cpp) BUILDCMD="$CXX $CXXFLAGS $src -o $exe" ;;
33         *.c)   BUILDCMD="$CC  $CXXFLAGS $src -o $exe" ;;
34         esac
35
36         [ $VERBOSE -gt 0 ] && echo "Building $name..."
37         $BUILDCMD 2>&1 | tee $name.build || echo "FAILED [BUILD]: $name"
38
39         [ $VERBOSE -gt 0 ] && echo "Running $name..."
40         $exe 2>&1 | tee $name.out || echo "FAILED [RUN]: $name"
41         #rm -f "$exe"
42 done
43