From dc48c34d4b2ab0f6c63b9ba438fec4a5891a23d3 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Thu, 13 Jul 2006 14:37:19 +0000 Subject: [PATCH] scripts for automated testing, compiling and reporting --- ir/be/test/compile.sh | 101 +++++++++++++++++++++++++++++++++++++++ ir/be/test/fib.c | 14 ++++++ ir/be/test/makehtml.xslt | 55 +++++++++++++++++++++ 3 files changed, 170 insertions(+) create mode 100755 ir/be/test/compile.sh create mode 100644 ir/be/test/makehtml.xslt diff --git a/ir/be/test/compile.sh b/ir/be/test/compile.sh new file mode 100755 index 000000000..1c19b2492 --- /dev/null +++ b/ir/be/test/compile.sh @@ -0,0 +1,101 @@ +EDG_CFLAGS="-b ra-chordal-spill=belady -b ia32-arch=athlon -b ia32-fpunit=x87 --c --gnu=400002 -I/usr/lib/gcc-lib/i586-suse-linux/3.3.5/include" +GCC_CFLAGS="-O3 -g -fomit-frame-pointer" +LINKFLAGS="-lm" + +CFILES="*.c" +OUTPUTDIR="stats-`date +%d.%m.%y`" + +mkdir -p build_firm +mkdir -p build_gcc +mkdir -p $OUTPUTDIR + +XMLRES=$OUTPUTDIR/result.xml +cat > $XMLRES << __END__ + + + + ${EDG_CFLAGS} + ${GCC_CFLAGS} + +__END__ + +# so endless apps stop at some point... +ulimit -t2 + +for file in ${CFILES}; do + COMPILE_RES="ok" + LINK_RES="omitted" + GCC_RES="ok" + GCC_RUN_RES="omitted" + FIRM_RUN_RES="omitted" + DIFF_RES="omitted" + + name="`basename $file .c`" + res="$OUTPUTDIR/buildresult_$name.txt" + echo "Building $name" + echo "Results for $name" > $res + echo "*** EDG/FIRM Compile" >> $res + CMD="edg ${EDG_CFLAGS} $file" + echo "$CMD" >> $res + $CMD >> $res 2>&1 || COMPILE_RES="failed" + + if [ ${COMPILE_RES} == "ok" ]; then + LINK_RES="ok" + CMD="mv $name.s build_firm/$name.s" + echo "$CMD" >> $res + $CMD >> $res 2>&1 + echo "*** Linking" >> $res + CMD="gcc build_firm/$name.s ${LINKFLAGS} -o build_firm/$name.exe" + echo "$CMD" >> $res + $CMD >> $res 2>&1 || LINK_RES="failed" + fi + + echo "*** GCC Compile" >> $res + CMD="gcc ${GCC_CFLAGS} $file ${LINKFLAGS} -o build_gcc/$name.exe" + echo "$CMD" >> $res + $CMD >> $res 2>&1 || GCC_RES="failed" + + if [ ${GCC_RES} = "ok" ]; then + GCC_RUN_RES="ok" + + echo "*** Run GCC" >> $res + CMD="build_gcc/$name.exe > $OUTPUTDIR/result_gcc_$name.txt 2>&1" + echo "$CMD" >> $res + build_gcc/$name.exe > $OUTPUTDIR/result_gcc_$name.txt 2>&1 || GCC_RUN_RES="failed" + fi + + if [ ${LINK_RES} = "ok" ]; then + FIRM_RUN_RES="ok" + + echo "*** Run Firm" >> $res + CMD="build_firm/$name.exe > $OUTPUTDIR/result_gcc_$name.txt 2>&1" + echo "$CMD" >> $res + build_firm/$name.exe > $OUTPUTDIR/result_firm_$name.txt 2>&1 || FIRM_RUN_RES="failed" + fi + + if [ ${GCC_RUN_RES} = "ok" -a ${FIRM_RUN_RES} = "ok" ]; then + DIFF_RES="ok" + + echo "*** Compare Results" >> $res + CMD="diff -u $OUTPUTDIR/result_gcc_$name.txt $OUTPUTDIR/result_firm_$name.txt" + $CMD > $OUTPUTDIR/result_diff_$name.txt 2>&1 || DIFF_RES="failed" + fi + + cat >> $XMLRES << __END__ + + $COMPILE_RES + $LINK_RES + $GCC_RES + $GCC_RUN_RES + $FIRM_RUN_RES + $DIFF_RES + +__END__ +done + +echo "" >> $XMLRES + +xsltproc --output $OUTPUTDIR/index.html makehtml.xslt $XMLRES + +# maybe execute custom actions after result has been generated +[ -e after_compile.sh ] && ./after_compile.sh "$OUTPUTDIR" diff --git a/ir/be/test/fib.c b/ir/be/test/fib.c index 8db5ff263..de904ee70 100644 --- a/ir/be/test/fib.c +++ b/ir/be/test/fib.c @@ -1,19 +1,29 @@ #include +//#define COUNT_BRANCHES + +#ifdef COUNT_BRANCHES int b1, b2, b3; +#endif unsigned fib(unsigned n) { if(n == 0) { +#ifdef COUNT_BRANCHES b1++; +#endif return 0; } if(n == 1) { +#ifdef COUNT_BRANCHES b2++; +#endif return 1; } +#ifdef COUNT_BRANCHES b3++; +#endif return fib(n-1) + fib(n-2); } @@ -22,9 +32,13 @@ int main(int argc, char** argv) { if(argc > 1) n = (unsigned) atoi(argv[1]); +#ifdef COUNT_BRANCHES b1 = b2 = b3 = 0; +#endif printf("Fib %u: %u\n", n, fib(n)); +#ifdef COUNT_BRANCHES printf("Branches: 1:%d 2:%d 3:%d\n", b1, b2, b3); +#endif return 0; } diff --git a/ir/be/test/makehtml.xslt b/ir/be/test/makehtml.xslt new file mode 100644 index 000000000..64d1850c8 --- /dev/null +++ b/ir/be/test/makehtml.xslt @@ -0,0 +1,55 @@ + + + + + + + + background-color: green; color: white; + + + background-color: red; color: white; + + + + + + + + + Results + + + + + + + + + + + + + + + + + + + + + + + +
NameCompileLinkGCC CompileGCC RunFirm RunResults
+ + buildresult_.txt + + +
+ + +
+
-- 2.20.1