cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

checkalllitmus.sh (1690B)


      1#!/bin/sh
      2# SPDX-License-Identifier: GPL-2.0+
      3#
      4# Run herd7 tests on all .litmus files in the litmus-tests directory
      5# and check each file's result against a "Result:" comment within that
      6# litmus test.  If the verification result does not match that specified
      7# in the litmus test, this script prints an error message prefixed with
      8# "^^^".  It also outputs verification results to a file whose name is
      9# that of the specified litmus test, but with ".out" appended.
     10#
     11# Usage:
     12#	checkalllitmus.sh
     13#
     14# Run this in the directory containing the memory model.
     15#
     16# This script makes no attempt to run the litmus tests concurrently.
     17#
     18# Copyright IBM Corporation, 2018
     19#
     20# Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
     21
     22. scripts/parseargs.sh
     23
     24litmusdir=litmus-tests
     25if test -d "$litmusdir" -a -r "$litmusdir" -a -x "$litmusdir"
     26then
     27	:
     28else
     29	echo ' --- ' error: $litmusdir is not an accessible directory
     30	exit 255
     31fi
     32
     33# Create any new directories that have appeared in the github litmus
     34# repo since the last run.
     35if test "$LKMM_DESTDIR" != "."
     36then
     37	find $litmusdir -type d -print |
     38	( cd "$LKMM_DESTDIR"; sed -e 's/^/mkdir -p /' | sh )
     39fi
     40
     41# Find the checklitmus script.  If it is not where we expect it, then
     42# assume that the caller has the PATH environment variable set
     43# appropriately.
     44if test -x scripts/checklitmus.sh
     45then
     46	clscript=scripts/checklitmus.sh
     47else
     48	clscript=checklitmus.sh
     49fi
     50
     51# Run the script on all the litmus tests in the specified directory
     52ret=0
     53for i in $litmusdir/*.litmus
     54do
     55	if ! $clscript $i
     56	then
     57		ret=1
     58	fi
     59done
     60if test "$ret" -ne 0
     61then
     62	echo " ^^^ VERIFICATION MISMATCHES" 1>&2
     63else
     64	echo All litmus tests verified as was expected. 1>&2
     65fi
     66exit $ret