1#!/bin/sh 2# This script automatically test the given tool with the tool's test cases, 3# reporting anything of interest. 4 5# exits with 1 if there is nothing of interest 6# exits with 0 if there is something interesting 7# exits with 2 if an error occurred 8 9# Give two .sum files to compare them 10 11# Written by Mike Stump <mrs@cygnus.com> 12 13tmp1=/tmp/$tool-testing.$$a 14tmp2=/tmp/$tool-testing.$$b 15now_s=/tmp/$tool-testing.$$d 16before_s=/tmp/$tool-testing.$$e 17 18if [ "$2" = "" ]; then 19 echo "Usage: $0 previous current" >&2 20 exit 2 21fi 22 23sed 's/^XFAIL/FAIL/; s/^XPASS/PASS/' < "$1" >$tmp1 24sed 's/^XFAIL/FAIL/; s/^XPASS/PASS/' < "$2" >$tmp2 25 26before=$tmp1 27now=$tmp2 28 29trap "rm -f $tmp1 $tmp2 $now_s $before_s" 0 1 2 3 5 9 13 15 30 31sort +0.4 "$now" > "$now_s" 32sort +0.4 "$before" > "$before_s" 33 34grep '^FAIL' "$now_s" | sed 's/^....: //' >$tmp1 35grep '^PASS' "$before_s" | sed 's/^....: //' | comm -12 $tmp1 - >$tmp2 36 37grep -s . $tmp2 >/dev/null 38if [ $? = 0 ]; then 39 echo "Tests that now fail, but worked before:" 40 echo 41 cat $tmp2 42 echo 43fi 44 45grep '^PASS' "$now_s" | sed 's/^....: //' >$tmp1 46grep '^FAIL' "$before_s" | sed 's/^....: //' | comm -12 $tmp1 - >$tmp2 47 48grep -s . $tmp2 >/dev/null 49if [ $? = 0 ]; then 50 echo "Tests that now work, but didn't before:" 51 echo 52 cat $tmp2 53 echo 54fi 55 56grep '^FAIL' "$now_s" | sed 's/^....: //' >$tmp1 57grep '^[PF]A[SI][SL]' "$before_s" | sed 's/^....: //' | comm -23 $tmp1 - >$tmp2 58 59grep -s . $tmp2 >/dev/null 60if [ $? = 0 ]; then 61 echo "New tests that FAIL:" 62 echo 63 cat $tmp2 64 echo 65fi 66 67grep '^PASS' "$now_s" | sed 's/^....: //' >$tmp1 68grep '^[PF]A[SI][SL]' "$before_s" | sed 's/^....: //' | comm -23 $tmp1 - >$tmp2 69 70grep -s . $tmp2 >/dev/null 71if [ $? = 0 ]; then 72 echo "New tests that PASS:" 73 echo 74 cat $tmp2 75 echo 76fi 77 78grep '^[PF]A[SI][SL]' "$now_s" | sed 's/^....: //' >$tmp1 79grep '^PASS' "$before_s" | sed 's/^....: //' | comm -13 $tmp1 - >$tmp2 80 81grep -s . $tmp2 >/dev/null 82if [ $? = 0 ]; then 83 echo "Old tests that passed, that have disappeared: (Eeek!)" 84 echo 85 cat $tmp2 86 echo 87fi 88 89grep '^[PF]A[SI][SL]' "$now_s" | sed 's/^....: //' >$tmp1 90grep '^FAIL' "$before_s" | sed 's/^....: //' | comm -13 $tmp1 - >$tmp2 91 92grep -s . $tmp2 >/dev/null 93if [ $? = 0 ]; then 94 echo "Old tests that failed, that have disappeared: (Eeek!)" 95 echo 96 cat $tmp2 97 echo 98fi 99