1 #!/bin/bash !! 1 #!/bin/sh 2 # SPDX-License-Identifier: GPL-2.0+ 2 # SPDX-License-Identifier: GPL-2.0+ 3 # 3 # 4 # Run herd7 tests on all .litmus files in the 4 # Run herd7 tests on all .litmus files in the litmus-tests directory 5 # and check each file's result against a "Resu 5 # and check each file's result against a "Result:" comment within that 6 # litmus test. If the verification result doe 6 # litmus test. If the verification result does not match that specified 7 # in the litmus test, this script prints an er 7 # in the litmus test, this script prints an error message prefixed with 8 # "^^^". It also outputs verification results 8 # "^^^". It also outputs verification results to a file whose name is 9 # that of the specified litmus test, but with 9 # that of the specified litmus test, but with ".out" appended. 10 # 10 # 11 # If the --hw argument is specified, this scri << 12 # C-language file to the specified type of ass << 13 # But in this case, litmus tests using complex << 14 # locking, RCU, and SRCU) are cheerfully ignor << 15 # << 16 # Usage: 11 # Usage: 17 # checkalllitmus.sh 12 # checkalllitmus.sh 18 # 13 # 19 # Run this in the directory containing the mem 14 # Run this in the directory containing the memory model. 20 # 15 # 21 # This script makes no attempt to run the litm 16 # This script makes no attempt to run the litmus tests concurrently. 22 # 17 # 23 # Copyright IBM Corporation, 2018 18 # Copyright IBM Corporation, 2018 24 # 19 # 25 # Author: Paul E. McKenney <paulmck@linux.ibm.c !! 20 # Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com> 26 21 27 . scripts/parseargs.sh 22 . scripts/parseargs.sh 28 23 29 litmusdir=litmus-tests 24 litmusdir=litmus-tests 30 if test -d "$litmusdir" -a -r "$litmusdir" -a 25 if test -d "$litmusdir" -a -r "$litmusdir" -a -x "$litmusdir" 31 then 26 then 32 : 27 : 33 else 28 else 34 echo ' --- ' error: $litmusdir is not 29 echo ' --- ' error: $litmusdir is not an accessible directory 35 exit 255 30 exit 255 36 fi 31 fi 37 32 38 # Create any new directories that have appeare !! 33 # Create any new directories that have appeared in the github litmus 39 # directory since the last run. !! 34 # repo since the last run. 40 if test "$LKMM_DESTDIR" != "." 35 if test "$LKMM_DESTDIR" != "." 41 then 36 then 42 find $litmusdir -type d -print | 37 find $litmusdir -type d -print | 43 ( cd "$LKMM_DESTDIR"; sed -e 's/^/mkdi 38 ( cd "$LKMM_DESTDIR"; sed -e 's/^/mkdir -p /' | sh ) 44 fi 39 fi 45 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. >> 44 if test -x scripts/checklitmus.sh >> 45 then >> 46 clscript=scripts/checklitmus.sh >> 47 else >> 48 clscript=checklitmus.sh >> 49 fi >> 50 46 # Run the script on all the litmus tests in th 51 # Run the script on all the litmus tests in the specified directory 47 ret=0 52 ret=0 48 for i in $litmusdir/*.litmus 53 for i in $litmusdir/*.litmus 49 do 54 do 50 if test -n "$LKMM_HW_MAP_FILE" && ! sc !! 55 if ! $clscript $i 51 then << 52 continue << 53 fi << 54 if ! scripts/checklitmus.sh $i << 55 then 56 then 56 ret=1 57 ret=1 57 fi 58 fi 58 done 59 done 59 if test "$ret" -ne 0 60 if test "$ret" -ne 0 60 then 61 then 61 echo " ^^^ VERIFICATION MISMATCHES" 1> 62 echo " ^^^ VERIFICATION MISMATCHES" 1>&2 62 else 63 else 63 echo All litmus tests verified as was 64 echo All litmus tests verified as was expected. 1>&2 64 fi 65 fi 65 exit $ret 66 exit $ret
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.