Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/memory-model/scripts/checklitmushist.sh
29266 views
1
#!/bin/sh
2
# SPDX-License-Identifier: GPL-2.0+
3
#
4
# Reruns the C-language litmus tests previously run that match the
5
# specified criteria, and compares the result to that of the previous
6
# runs from initlitmushist.sh and/or newlitmushist.sh.
7
#
8
# sh checklitmushist.sh
9
#
10
# Run from the Linux kernel tools/memory-model directory.
11
# See scripts/parseargs.sh for list of arguments.
12
#
13
# Copyright IBM Corporation, 2018
14
#
15
# Author: Paul E. McKenney <[email protected]>
16
17
. scripts/parseargs.sh
18
19
T=/tmp/checklitmushist.sh.$$
20
trap 'rm -rf $T' 0
21
mkdir $T
22
23
if test -d litmus
24
then
25
:
26
else
27
echo Run scripts/initlitmushist.sh first, need litmus repo.
28
exit 1
29
fi
30
31
# Create the results directory and populate it with subdirectories.
32
# The initial output is created here to avoid clobbering the output
33
# generated earlier.
34
mkdir $T/results
35
find litmus -type d -print | ( cd $T/results; sed -e 's/^/mkdir -p /' | sh )
36
37
# Create the list of litmus tests already run, then remove those that
38
# are excluded by this run's --procs argument.
39
( cd $LKMM_DESTDIR; find litmus -name '*.litmus.out' -print ) |
40
sed -e 's/\.out$//' |
41
xargs -r grep -L "^P${LKMM_PROCS}"> $T/list-C-already
42
xargs < $T/list-C-already -r grep -L "^P${LKMM_PROCS}" > $T/list-C-short
43
44
# Redirect output, run tests, then restore destination directory.
45
destdir="$LKMM_DESTDIR"
46
LKMM_DESTDIR=$T/results; export LKMM_DESTDIR
47
scripts/runlitmushist.sh < $T/list-C-short > $T/runlitmushist.sh.out 2>&1
48
LKMM_DESTDIR="$destdir"; export LKMM_DESTDIR
49
50
# Move the newly generated .litmus.out files to .litmus.out.new files
51
# in the destination directory.
52
cdir=`pwd`
53
ddir=`awk -v c="$cdir" -v d="$LKMM_DESTDIR" \
54
'END { if (d ~ /^\//) print d; else print c "/" d; }' < /dev/null`
55
( cd $T/results; find litmus -type f -name '*.litmus.out' -print |
56
sed -e 's,^.*$,cp & '"$ddir"'/&.new,' | sh )
57
58
sed < $T/list-C-short -e 's,^,'"$LKMM_DESTDIR/"',' |
59
sh scripts/cmplitmushist.sh
60
exit $?
61
62