123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/bin/sh
- # SPDX-License-Identifier: GPL-2.0+
- #
- # Reruns the C-language litmus tests previously run that match the
- # specified criteria, and compares the result to that of the previous
- # runs from initlitmushist.sh and/or newlitmushist.sh.
- #
- # sh checklitmushist.sh
- #
- # Run from the Linux kernel tools/memory-model directory.
- # See scripts/parseargs.sh for list of arguments.
- #
- # Copyright IBM Corporation, 2018
- #
- # Author: Paul E. McKenney <[email protected]>
- . scripts/parseargs.sh
- T=/tmp/checklitmushist.sh.$$
- trap 'rm -rf $T' 0
- mkdir $T
- if test -d litmus
- then
- :
- else
- echo Run scripts/initlitmushist.sh first, need litmus repo.
- exit 1
- fi
- # Create the results directory and populate it with subdirectories.
- # The initial output is created here to avoid clobbering the output
- # generated earlier.
- mkdir $T/results
- find litmus -type d -print | ( cd $T/results; sed -e 's/^/mkdir -p /' | sh )
- # Create the list of litmus tests already run, then remove those that
- # are excluded by this run's --procs argument.
- ( cd $LKMM_DESTDIR; find litmus -name '*.litmus.out' -print ) |
- sed -e 's/\.out$//' |
- xargs -r grep -L "^P${LKMM_PROCS}"> $T/list-C-already
- xargs < $T/list-C-already -r grep -L "^P${LKMM_PROCS}" > $T/list-C-short
- # Redirect output, run tests, then restore destination directory.
- destdir="$LKMM_DESTDIR"
- LKMM_DESTDIR=$T/results; export LKMM_DESTDIR
- scripts/runlitmushist.sh < $T/list-C-short > $T/runlitmushist.sh.out 2>&1
- LKMM_DESTDIR="$destdir"; export LKMM_DESTDIR
- # Move the newly generated .litmus.out files to .litmus.out.new files
- # in the destination directory.
- cdir=`pwd`
- ddir=`awk -v c="$cdir" -v d="$LKMM_DESTDIR" \
- 'END { if (d ~ /^\//) print d; else print c "/" d; }' < /dev/null`
- ( cd $T/results; find litmus -type f -name '*.litmus.out' -print |
- sed -e 's,^.*$,cp & '"$ddir"'/&.new,' | sh )
- sed < $T/list-C-short -e 's,^,'"$LKMM_DESTDIR/"',' |
- sh scripts/cmplitmushist.sh
- exit $?
|