hc
2024-03-22 ac5f19e89dcbd5c7428fcc78a0d407c887564466
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/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