~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/memory-model/scripts/runlitmushist.sh

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #!/bin/bash
  2 # SPDX-License-Identifier: GPL-2.0+
  3 #
  4 # Runs the C-language litmus tests specified on standard input, using up
  5 # to the specified number of CPUs (defaulting to all of them) and placing
  6 # the results in the specified directory (defaulting to the same place
  7 # the litmus test came from).
  8 #
  9 # sh runlitmushist.sh
 10 #
 11 # Run from the Linux kernel tools/memory-model directory.
 12 # This script uses environment variables produced by parseargs.sh.
 13 #
 14 # Copyright IBM Corporation, 2018
 15 #
 16 # Author: Paul E. McKenney <paulmck@linux.ibm.com>
 17 
 18 . scripts/hwfnseg.sh
 19 
 20 T=/tmp/runlitmushist.sh.$$
 21 trap 'rm -rf $T' 0
 22 mkdir $T
 23 
 24 if test -d litmus
 25 then
 26         :
 27 else
 28         echo Directory \"litmus\" missing, aborting run.
 29         exit 1
 30 fi
 31 
 32 # Prefixes for per-CPU scripts
 33 for ((i=0;i<$LKMM_JOBS;i++))
 34 do
 35         echo T=$T >> $T/$i.sh
 36         cat << '___EOF___' >> $T/$i.sh
 37         runtest () {
 38                 if scripts/runlitmus.sh $1
 39                 then
 40                         if ! grep -q '^Observation ' $LKMM_DESTDIR/$1$2.out
 41                         then
 42                                 echo ' !!! Herd failed, no Observation:' $1
 43                         fi
 44                 else
 45                         exitcode=$?
 46                         if test "$exitcode" -eq 124
 47                         then
 48                                 exitmsg="timed out"
 49                         elif test "$exitcode" -eq 253
 50                         then
 51                                 exitmsg=
 52                         else
 53                                 exitmsg="failed, exit code $exitcode"
 54                         fi
 55                         if test -n "$exitmsg"
 56                         then
 57                                 echo ' !!! Herd' ${exitmsg}: $1
 58                         fi
 59                 fi
 60         }
 61 ___EOF___
 62 done
 63 
 64 awk -v q="'" -v b='\\' '
 65 {
 66         print "echo `grep " q "^P[0-9]" b "+(" q " " $0 " | tail -1 | sed -e " q "s/^P" b "([0-9]" b "+" b ")(.*$/" b "1/" q "` " $0
 67 }' | sh | sort -k1n |
 68 awk -v dq='"' -v hwfnseg="$hwfnseg" -v ncpu="$LKMM_JOBS" -v t="$T" '
 69 {
 70         print "if test -z " dq hwfnseg dq " || scripts/simpletest.sh " dq $2 dq
 71         print "then"
 72         print "\techo runtest " dq $2 dq " " hwfnseg " >> " t "/" NR % ncpu ".sh";
 73         print "fi"
 74 }
 75 
 76 END {
 77         for (i = 0; i < ncpu; i++) {
 78                 print "sh " t "/" i ".sh > " t "/" i ".sh.out 2>&1 &";
 79                 close(t "/" i ".sh");
 80         }
 81         print "wait";
 82 }' | sh
 83 cat $T/*.sh.out
 84 if grep -q '!!!' $T/*.sh.out
 85 then
 86         echo ' ---' Summary: 1>&2
 87         grep '!!!' $T/*.sh.out 1>&2
 88         nfail="`grep '!!!' $T/*.sh.out | wc -l`"
 89         echo 'Number of failed herd7 runs (e.g., timeout): ' $nfail 1>&2
 90         exit 1
 91 else
 92         echo All runs completed successfully. 1>&2
 93         exit 0
 94 fi

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php