mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.7 KiB
66 lines
1.7 KiB
#!/bin/sh |
|
# SPDX-License-Identifier: GPL-2.0+ |
|
# |
|
# Run herd7 tests on all .litmus files in the litmus-tests directory |
|
# and check each file's result against a "Result:" comment within that |
|
# litmus test. If the verification result does not match that specified |
|
# in the litmus test, this script prints an error message prefixed with |
|
# "^^^". It also outputs verification results to a file whose name is |
|
# that of the specified litmus test, but with ".out" appended. |
|
# |
|
# Usage: |
|
# checkalllitmus.sh |
|
# |
|
# Run this in the directory containing the memory model. |
|
# |
|
# This script makes no attempt to run the litmus tests concurrently. |
|
# |
|
# Copyright IBM Corporation, 2018 |
|
# |
|
# Author: Paul E. McKenney <[email protected]> |
|
|
|
. scripts/parseargs.sh |
|
|
|
litmusdir=litmus-tests |
|
if test -d "$litmusdir" -a -r "$litmusdir" -a -x "$litmusdir" |
|
then |
|
: |
|
else |
|
echo ' --- ' error: $litmusdir is not an accessible directory |
|
exit 255 |
|
fi |
|
|
|
# Create any new directories that have appeared in the github litmus |
|
# repo since the last run. |
|
if test "$LKMM_DESTDIR" != "." |
|
then |
|
find $litmusdir -type d -print | |
|
( cd "$LKMM_DESTDIR"; sed -e 's/^/mkdir -p /' | sh ) |
|
fi |
|
|
|
# Find the checklitmus script. If it is not where we expect it, then |
|
# assume that the caller has the PATH environment variable set |
|
# appropriately. |
|
if test -x scripts/checklitmus.sh |
|
then |
|
clscript=scripts/checklitmus.sh |
|
else |
|
clscript=checklitmus.sh |
|
fi |
|
|
|
# Run the script on all the litmus tests in the specified directory |
|
ret=0 |
|
for i in $litmusdir/*.litmus |
|
do |
|
if ! $clscript $i |
|
then |
|
ret=1 |
|
fi |
|
done |
|
if test "$ret" -ne 0 |
|
then |
|
echo " ^^^ VERIFICATION MISMATCHES" 1>&2 |
|
else |
|
echo All litmus tests verified as was expected. 1>&2 |
|
fi |
|
exit $ret
|
|
|