18c2ecf20Sopenharmony_ci#!/bin/sh 28c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0+ 38c2ecf20Sopenharmony_ci# 48c2ecf20Sopenharmony_ci# Compares .out and .out.new files for each name on standard input, 58c2ecf20Sopenharmony_ci# one full pathname per line. Outputs comparison results followed by 68c2ecf20Sopenharmony_ci# a summary. 78c2ecf20Sopenharmony_ci# 88c2ecf20Sopenharmony_ci# sh cmplitmushist.sh 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ciT=/tmp/cmplitmushist.sh.$$ 118c2ecf20Sopenharmony_citrap 'rm -rf $T' 0 128c2ecf20Sopenharmony_cimkdir $T 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci# comparetest oldpath newpath 158c2ecf20Sopenharmony_ciperfect=0 168c2ecf20Sopenharmony_ciobsline=0 178c2ecf20Sopenharmony_cinoobsline=0 188c2ecf20Sopenharmony_ciobsresult=0 198c2ecf20Sopenharmony_cibadcompare=0 208c2ecf20Sopenharmony_cicomparetest () { 218c2ecf20Sopenharmony_ci grep -v 'maxresident)k\|minor)pagefaults\|^Time' $1 > $T/oldout 228c2ecf20Sopenharmony_ci grep -v 'maxresident)k\|minor)pagefaults\|^Time' $2 > $T/newout 238c2ecf20Sopenharmony_ci if cmp -s $T/oldout $T/newout && grep -q '^Observation' $1 248c2ecf20Sopenharmony_ci then 258c2ecf20Sopenharmony_ci echo Exact output match: $2 268c2ecf20Sopenharmony_ci perfect=`expr "$perfect" + 1` 278c2ecf20Sopenharmony_ci return 0 288c2ecf20Sopenharmony_ci fi 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci grep '^Observation' $1 > $T/oldout 318c2ecf20Sopenharmony_ci grep '^Observation' $2 > $T/newout 328c2ecf20Sopenharmony_ci if test -s $T/oldout -o -s $T/newout 338c2ecf20Sopenharmony_ci then 348c2ecf20Sopenharmony_ci if cmp -s $T/oldout $T/newout 358c2ecf20Sopenharmony_ci then 368c2ecf20Sopenharmony_ci echo Matching Observation result and counts: $2 378c2ecf20Sopenharmony_ci obsline=`expr "$obsline" + 1` 388c2ecf20Sopenharmony_ci return 0 398c2ecf20Sopenharmony_ci fi 408c2ecf20Sopenharmony_ci else 418c2ecf20Sopenharmony_ci echo Missing Observation line "(e.g., herd7 timeout)": $2 428c2ecf20Sopenharmony_ci noobsline=`expr "$noobsline" + 1` 438c2ecf20Sopenharmony_ci return 0 448c2ecf20Sopenharmony_ci fi 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci grep '^Observation' $1 | awk '{ print $3 }' > $T/oldout 478c2ecf20Sopenharmony_ci grep '^Observation' $2 | awk '{ print $3 }' > $T/newout 488c2ecf20Sopenharmony_ci if cmp -s $T/oldout $T/newout 498c2ecf20Sopenharmony_ci then 508c2ecf20Sopenharmony_ci echo Matching Observation Always/Sometimes/Never result: $2 518c2ecf20Sopenharmony_ci obsresult=`expr "$obsresult" + 1` 528c2ecf20Sopenharmony_ci return 0 538c2ecf20Sopenharmony_ci fi 548c2ecf20Sopenharmony_ci echo ' !!!' Result changed: $2 558c2ecf20Sopenharmony_ci badcompare=`expr "$badcompare" + 1` 568c2ecf20Sopenharmony_ci return 1 578c2ecf20Sopenharmony_ci} 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_cised -e 's/^.*$/comparetest &.out &.out.new/' > $T/cmpscript 608c2ecf20Sopenharmony_ci. $T/cmpscript > $T/cmpscript.out 618c2ecf20Sopenharmony_cicat $T/cmpscript.out 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ciecho ' ---' Summary: 1>&2 648c2ecf20Sopenharmony_cigrep '!!!' $T/cmpscript.out 1>&2 658c2ecf20Sopenharmony_ciif test "$perfect" -ne 0 668c2ecf20Sopenharmony_cithen 678c2ecf20Sopenharmony_ci echo Exact output matches: $perfect 1>&2 688c2ecf20Sopenharmony_cifi 698c2ecf20Sopenharmony_ciif test "$obsline" -ne 0 708c2ecf20Sopenharmony_cithen 718c2ecf20Sopenharmony_ci echo Matching Observation result and counts: $obsline 1>&2 728c2ecf20Sopenharmony_cifi 738c2ecf20Sopenharmony_ciif test "$noobsline" -ne 0 748c2ecf20Sopenharmony_cithen 758c2ecf20Sopenharmony_ci echo Missing Observation line "(e.g., herd7 timeout)": $noobsline 1>&2 768c2ecf20Sopenharmony_cifi 778c2ecf20Sopenharmony_ciif test "$obsresult" -ne 0 788c2ecf20Sopenharmony_cithen 798c2ecf20Sopenharmony_ci echo Matching Observation Always/Sometimes/Never result: $obsresult 1>&2 808c2ecf20Sopenharmony_cifi 818c2ecf20Sopenharmony_ciif test "$badcompare" -ne 0 828c2ecf20Sopenharmony_cithen 838c2ecf20Sopenharmony_ci echo "!!!" Result changed: $badcompare 1>&2 848c2ecf20Sopenharmony_ci exit 1 858c2ecf20Sopenharmony_cifi 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ciexit 0 88