Mercurial > hg > silvet
diff bqvec/build/run-platform-tests.sh @ 372:af71cbdab621 tip
Update bqvec code
author | Chris Cannam |
---|---|
date | Tue, 19 Nov 2019 10:13:32 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bqvec/build/run-platform-tests.sh Tue Nov 19 10:13:32 2019 +0000 @@ -0,0 +1,84 @@ +#!/bin/bash + +if [ -z "$1" ]; then + echo "Usage: $0 <platformtag>" + exit 2 +fi + +platformtag="$1" + +set -eu + +ippdir=/opt/intel/ipp + +echo +if [ -d "$ippdir" ]; then + echo "Found IPP directory $ippdir, considering IPP as well as other options" +else + echo "No IPP directory $ippdir, not testing with IPP" +fi + +if valgrind --version >/dev/null 2>&1 ; +then + have_valgrind=yes +else + echo + echo "No valgrind executable found, not using valgrind" + have_valgrind=no +fi + +tmpfile=$(mktemp "/tmp/test_XXXXXX") +trap "rm -f $tmpfile" 0 + +run() { + successtext="$1" + shift + echo -n "Running \"$@\"..." + if "$@" > "$tmpfile" 2>&1 ; then + if [ -z "$successtext" ] || fgrep -q "$successtext" "$tmpfile" ; then + echo " OK" + return 0 + else + echo " Failed" + cat "$tmpfile" + return 1 + fi + else + echo " Failed" + cat "$tmpfile" + return 1 + fi +} + +for mf in Makefile build/Makefile.$platformtag build/Makefile.$platformtag.* ; do + + case "$mf" in + *~) continue;; + *.bak) continue;; + *ipp) + if [ ! -d "$ippdir" ]; then + continue + fi;; + esac + + if [ ! -f "$mf" ]; then + continue + fi + + echo + echo "Building and testing with $mf:" + echo + + make -f "$mf" clean >/dev/null + run "No errors detected" make -f "$mf" test + + if [ "$have_valgrind" = "yes" ]; then + for t in test-* ; do + if [ -x "$t" ]; then + run "no leaks are possible" valgrind --leak-check=full ./"$t" + fi + done + fi +done + +