#!/bin/bash -x # # Common - Elements shared by all regression tests for BOOM # # Written 2012 by Werner Almesberger # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # run_boom() { if [ "`sed -n '/^!-/p;q' _in`" -o ! -s _in ]; then args="-N dummy <(echo ';')" else args="-N h <(sed -n '/^!-/q;p' _in)" fi for n in c x p i s b X; do for m in "" 1 2 3; do if grep ^!-$n$m\$ _in >/dev/null; then args="$args -N $n$m" args="$args -$n \ <(sed -n '0,/^!-$n$m/d;/^!-/q;p' _in)" fi done done eval $VALGRIND ../boom "$args" "$@" } tst() { echo -n "$1: " 1>&2 shift cat >_in run_boom "$@" >_out 2>&1 || { echo FAILED "($SCRIPT)" 1>&2 cat _out exit 1 } } tst_fail() { echo -n "$1: " 1>&2 shift cat >_in run_boom "$@" >_out 2>&1 && { echo FAILED "($SCRIPT)" 1>&2 cat _out exit 1 } rm -f _in } expect() { diff -u - "$@" _out >_diff || { echo FAILED "($SCRIPT)" 1>&2 cat _diff 1>&2 exit 1 } echo PASSED 1>&2 rm -f _in _out _diff passed=`expr ${passed:-0} + 1` }