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 <paul...@linux.ibm.com>
---
 tools/memory-model/scripts/cmplitmushist.sh | 22 +++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/tools/memory-model/scripts/cmplitmushist.sh 
b/tools/memory-model/scripts/cmplitmushist.sh
index 0f498aeeccf5..b9c174dd8004 100755
--- a/tools/memory-model/scripts/cmplitmushist.sh
+++ b/tools/memory-model/scripts/cmplitmushist.sh
@@ -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
-- 
2.17.1

Reply via email to