tools/memory-model: Make cmplitmushist.sh note timeouts
authorPaul E. McKenney <paulmck@kernel.org>
Mon, 18 Mar 2019 20:07:46 +0000 (13:07 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Fri, 24 Mar 2023 17:24:13 +0000 (10:24 -0700)
Currently, cmplitmushist.sh treats timeouts (as in the "--timeout"
argument) as "Missing Observation line".  This can be misleading because
it is quite possible that running the test longer would have produced
a verification.  This commit therefore changes cmplitmushist.sh to check
for timeouts and to report them with "Timed out".

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
tools/memory-model/scripts/cmplitmushist.sh

index 0f498ae..b9c174d 100755 (executable)
@@ -12,12 +12,30 @@ trap 'rm -rf $T' 0
 mkdir $T
 
 # comparetest oldpath newpath
+timedout=0
 perfect=0
 obsline=0
 noobsline=0
 obsresult=0
 badcompare=0
 comparetest () {
+       if grep -q '^Command exited with non-zero status 124' $1 ||
+          grep -q '^Command exited with non-zero status 124' $2
+       then
+               if grep -q '^Command exited with non-zero status 124' $1 &&
+                  grep -q '^Command exited with non-zero status 124' $2
+               then
+                       echo Both runs timed out: $2
+               elif grep -q '^Command exited with non-zero status 124' $1
+               then
+                       echo Old run timed out: $2
+               elif grep -q '^Command exited with non-zero status 124' $2
+               then
+                       echo New run timed out: $2
+               fi
+               timedout=`expr "$timedout" + 1`
+               return 0
+       fi
        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
@@ -78,6 +96,10 @@ if test "$obsresult" -ne 0
 then
        echo Matching Observation Always/Sometimes/Never result: $obsresult 1>&2
 fi
+if test "$timedout" -ne 0
+then
+       echo "!!!" Timed out: $timedout 1>&2
+fi
 if test "$badcompare" -ne 0
 then
        echo "!!!" Result changed: $badcompare 1>&2