benchs: produce .xml files conform with junit
authorJean Privat <jean@pryen.org>
Thu, 4 Sep 2014 15:54:38 +0000 (11:54 -0400)
committerJean Privat <jean@pryen.org>
Thu, 4 Sep 2014 15:56:31 +0000 (11:56 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

benchmarks/bench_common.sh
benchmarks/bench_engines.sh

index c600732..4ea5ffe 100644 (file)
@@ -37,9 +37,11 @@ function bench_command()
        echo "** [$title] $desc **"
        echo " $ $@"
 
+       failed=
+
        # Execute the commands $count times
        for i in `seq 1 "$count"`; do
-               /usr/bin/time -f "%U" -o "$timeout" -a "$@" > $outputopts 2>&1 || die "$1: failed"
+               /usr/bin/time -f "%U" -o "$timeout" -a "$@" > $outputopts 2>&1 || { failed=true; die "$1: failed"; }
                echo -n "$i. "
                tail -n 1 "$timeout"
        done
@@ -47,6 +49,13 @@ function bench_command()
        line=`compute_stats "$timeout"`
        echo "$line ($res)"
        echo $line >> "$res"
+
+       test -z "$xml" && return
+       echo >>"$xml" "<testcase classname='bench.`basename $res .dat`' name='$title' time='`echo $line | cut -f 1 -d " "`' timestamp='`date -Iseconds`'>"
+       if test -n "$failed"; then
+               echo >>"$xml" "<error message='Command failed'/>"
+       fi
+       echo >>"$xml" "</testcase>"
 }
 
 # Run a simble command witout storing the execution time
index 3737424..385d033 100755 (executable)
@@ -103,6 +103,9 @@ while [ "$stop" = false ]; do
        esac
 done
 
+xml="bench_engines.xml"
+echo "<testsuites><testsuite>" > "$xml"
+
 NOTSKIPED="$*"
 
 if test -z "$NOTSKIPED"; then
@@ -332,6 +335,8 @@ if test -n "$html"; then
        echo >>"$html" "</body></html>"
 fi
 
+echo >>"$xml" "</testsuite></testsuites>"
+
 if test -n "$died"; then
        echo "Some commands failed"
        exit 1