1*63d4abf0Sagc#! /bin/sh 2*63d4abf0Sagc 3*63d4abf0Sagcset -e 4*63d4abf0Sagc 5*63d4abf0Sagcagrep="$top_builddir/src/agrep" 6*63d4abf0Sagc 7*63d4abf0Sagcecho "$builddir $top_builddir $srcdir" 8*63d4abf0Sagc 9*63d4abf0Sagcnum_cases=0 10*63d4abf0Sagcnum_expanded=0 11*63d4abf0Sagcnum_tests=0 12*63d4abf0Sagcnum_fail=0 13*63d4abf0Sagcnum_ok=0 14*63d4abf0Sagc 15*63d4abf0SagcSIFS="$IFS" 16*63d4abf0Sagc 17*63d4abf0Sagcfor args in $srcdir/*.args; do 18*63d4abf0Sagc dir=`dirname $args` 19*63d4abf0Sagc base=`basename $args .args` 20*63d4abf0Sagc orig_input=$dir/$base.input 21*63d4abf0Sagc input=$base.in 22*63d4abf0Sagc ok=$dir/$base.ok 23*63d4abf0Sagc out=$base.out 24*63d4abf0Sagc 25*63d4abf0Sagc rm -f $out 26*63d4abf0Sagc IFS=" 27*63d4abf0Sagc" 28*63d4abf0Sagc for arg in `cat $args`; do 29*63d4abf0Sagc IFS="$SIFS" 30*63d4abf0Sagc case "$arg" in 31*63d4abf0Sagc \#*) continue;; 32*63d4abf0Sagc esac 33*63d4abf0Sagc 34*63d4abf0Sagc num_cases=`expr $num_cases + 1` 35*63d4abf0Sagc cp "$orig_input" $input 36*63d4abf0Sagc 37*63d4abf0Sagc for extra in "" -c -H -l -n -s -M --show-position --color \ 38*63d4abf0Sagc "-H -n -s --color --show-position"; do 39*63d4abf0Sagc num_expanded=`expr $num_expanded + 1` 40*63d4abf0Sagc # Note that `echo' cannot be used since it works differently on 41*63d4abf0Sagc # different platforms with regards to expanding \n (IRIX expands 42*63d4abf0Sagc # it, others typically do not). `cat' doesn't process its output. 43*63d4abf0Sagc cat >> $out <<EOF 44*63d4abf0Sagc#### TEST: agrep $extra $arg $input 45*63d4abf0SagcEOF 46*63d4abf0Sagc cat <<EOF 47*63d4abf0Sagcagrep $extra $arg $input 48*63d4abf0SagcEOF 49*63d4abf0Sagc set +e 50*63d4abf0Sagc $agrep $extra $arg $input >> $out 51*63d4abf0Sagc status=$? 52*63d4abf0Sagc set -e 53*63d4abf0Sagc cat >> $out <<EOF 54*63d4abf0Sagc 55*63d4abf0SagcExit status $status. 56*63d4abf0SagcEOF 57*63d4abf0Sagc 58*63d4abf0Sagc num_expanded=`expr $num_expanded + 1` 59*63d4abf0Sagc cat >> $out <<EOF 60*63d4abf0Sagc#### TEST: agrep $extra $arg < $input 61*63d4abf0SagcEOF 62*63d4abf0Sagc cat <<EOF 63*63d4abf0Sagcagrep $extra $arg < $input 64*63d4abf0SagcEOF 65*63d4abf0Sagc set +e 66*63d4abf0Sagc $agrep $extra $arg < $input >> $out 67*63d4abf0Sagc status=$? 68*63d4abf0Sagc set -e 69*63d4abf0Sagc cat >> $out <<EOF 70*63d4abf0Sagc 71*63d4abf0SagcExit status $status. 72*63d4abf0SagcEOF 73*63d4abf0Sagc done 74*63d4abf0Sagc done 75*63d4abf0Sagc num_tests=`expr $num_tests + 1` 76*63d4abf0Sagc case $host_triplet in 77*63d4abf0Sagc *-mingw*) 78*63d4abf0Sagc # On MinGW something causes \r\n newlines to be output to $out, 79*63d4abf0Sagc # and our reference results don't have them. 80*63d4abf0Sagc tr -d '\015' < $out > $out.tmp 81*63d4abf0Sagc mv $out.tmp $out 82*63d4abf0Sagc ;; 83*63d4abf0Sagc esac 84*63d4abf0Sagc if diff $ok $out; then 85*63d4abf0Sagc num_ok=`expr $num_ok + 1` 86*63d4abf0Sagc else 87*63d4abf0Sagc echo "FAILED (see above)" 88*63d4abf0Sagc num_fail=`expr $num_fail + 1` 89*63d4abf0Sagc fi 90*63d4abf0Sagcdone 91*63d4abf0Sagc 92*63d4abf0Sagcecho "Ran $num_cases tests ($num_expanded expanded) from $num_tests suites." 93*63d4abf0Sagcecho "$num_ok/$num_tests tests OK" 94*63d4abf0Sagc 95*63d4abf0Sagctest $num_fail -eq 0 96*63d4abf0Sagcexit $? 97