|  | #!/bin/sh | 
|  | # SPDX-License-Identifier: GPL-2.0+ | 
|  | # | 
|  | # Compares .out and .out.new files for each name on standard input, | 
|  | # one full pathname per line.  Outputs comparison results followed by | 
|  | # a summary. | 
|  | # | 
|  | # sh cmplitmushist.sh | 
|  |  | 
|  | T=/tmp/cmplitmushist.sh.$$ | 
|  | trap 'rm -rf $T' 0 | 
|  | mkdir $T | 
|  |  | 
|  | # comparetest oldpath newpath | 
|  | perfect=0 | 
|  | obsline=0 | 
|  | noobsline=0 | 
|  | obsresult=0 | 
|  | badcompare=0 | 
|  | comparetest () { | 
|  | grep -v 'maxresident)k\|minor)pagefaults\|^Time' $1 > $T/oldout | 
|  | grep -v 'maxresident)k\|minor)pagefaults\|^Time' $2 > $T/newout | 
|  | if cmp -s $T/oldout $T/newout && grep -q '^Observation' $1 | 
|  | then | 
|  | echo Exact output match: $2 | 
|  | perfect=`expr "$perfect" + 1` | 
|  | return 0 | 
|  | fi | 
|  |  | 
|  | grep '^Observation' $1 > $T/oldout | 
|  | grep '^Observation' $2 > $T/newout | 
|  | if test -s $T/oldout -o -s $T/newout | 
|  | then | 
|  | if cmp -s $T/oldout $T/newout | 
|  | then | 
|  | echo Matching Observation result and counts: $2 | 
|  | obsline=`expr "$obsline" + 1` | 
|  | return 0 | 
|  | fi | 
|  | else | 
|  | echo Missing Observation line "(e.g., herd7 timeout)": $2 | 
|  | noobsline=`expr "$noobsline" + 1` | 
|  | return 0 | 
|  | fi | 
|  |  | 
|  | grep '^Observation' $1 | awk '{ print $3 }' > $T/oldout | 
|  | grep '^Observation' $2 | awk '{ print $3 }' > $T/newout | 
|  | if cmp -s $T/oldout $T/newout | 
|  | then | 
|  | echo Matching Observation Always/Sometimes/Never result: $2 | 
|  | obsresult=`expr "$obsresult" + 1` | 
|  | return 0 | 
|  | fi | 
|  | echo ' !!!' Result changed: $2 | 
|  | badcompare=`expr "$badcompare" + 1` | 
|  | return 1 | 
|  | } | 
|  |  | 
|  | sed -e 's/^.*$/comparetest &.out &.out.new/' > $T/cmpscript | 
|  | . $T/cmpscript > $T/cmpscript.out | 
|  | cat $T/cmpscript.out | 
|  |  | 
|  | echo ' ---' Summary: 1>&2 | 
|  | grep '!!!' $T/cmpscript.out 1>&2 | 
|  | if test "$perfect" -ne 0 | 
|  | then | 
|  | echo Exact output matches: $perfect 1>&2 | 
|  | fi | 
|  | if test "$obsline" -ne 0 | 
|  | then | 
|  | echo Matching Observation result and counts: $obsline 1>&2 | 
|  | fi | 
|  | if test "$noobsline" -ne 0 | 
|  | then | 
|  | echo Missing Observation line "(e.g., herd7 timeout)": $noobsline 1>&2 | 
|  | fi | 
|  | if test "$obsresult" -ne 0 | 
|  | then | 
|  | echo Matching Observation Always/Sometimes/Never result: $obsresult 1>&2 | 
|  | fi | 
|  | if test "$badcompare" -ne 0 | 
|  | then | 
|  | echo "!!!" Result changed: $badcompare 1>&2 | 
|  | exit 1 | 
|  | fi | 
|  |  | 
|  | exit 0 |