Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / tools / testing / selftests / rcutorture / bin / srcu_lockdep.sh
blob2e63ef009d59301192912ba9d9394ac4d7234c7e
1 #!/bin/bash
2 # SPDX-License-Identifier: GPL-2.0+
4 # Run SRCU-lockdep tests and report any that fail to meet expectations.
6 # Copyright (C) 2021 Meta Platforms, Inc.
8 # Authors: Paul E. McKenney <paulmck@kernel.org>
10 usage () {
11 echo "Usage: $scriptname optional arguments:"
12 echo " --datestamp string"
13 exit 1
16 ds=`date +%Y.%m.%d-%H.%M.%S`-srcu_lockdep
17 scriptname="$0"
19 T="`mktemp -d ${TMPDIR-/tmp}/srcu_lockdep.sh.XXXXXX`"
20 trap 'rm -rf $T' 0
22 RCUTORTURE="`pwd`/tools/testing/selftests/rcutorture"; export RCUTORTURE
23 PATH=${RCUTORTURE}/bin:$PATH; export PATH
24 . functions.sh
26 while test $# -gt 0
28 case "$1" in
29 --datestamp)
30 checkarg --datestamp "(relative pathname)" "$#" "$2" '^[a-zA-Z0-9._/-]*$' '^--'
31 ds=$2
32 shift
35 echo Unknown argument $1
36 usage
38 esac
39 shift
40 done
42 err=
43 nerrs=0
44 for d in 0 1
46 for t in 0 1 2
48 for c in 1 2 3
50 err=
51 val=$((d*1000+t*10+c))
52 tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --duration 5s --configs "SRCU-P" --bootargs "rcutorture.test_srcu_lockdep=$val" --trust-make --datestamp "$ds/$val" > "$T/kvm.sh.out" 2>&1
53 ret=$?
54 mv "$T/kvm.sh.out" "$RCUTORTURE/res/$ds/$val"
55 if test "$d" -ne 0 && test "$ret" -eq 0
56 then
57 err=1
58 echo -n Unexpected success for > "$RCUTORTURE/res/$ds/$val/kvm.sh.err"
60 if test "$d" -eq 0 && test "$ret" -ne 0
61 then
62 err=1
63 echo -n Unexpected failure for > "$RCUTORTURE/res/$ds/$val/kvm.sh.err"
65 if test -n "$err"
66 then
67 grep "rcu_torture_init_srcu_lockdep: test_srcu_lockdep = " "$RCUTORTURE/res/$ds/$val/SRCU-P/console.log" | sed -e 's/^.*rcu_torture_init_srcu_lockdep://' >> "$RCUTORTURE/res/$ds/$val/kvm.sh.err"
68 cat "$RCUTORTURE/res/$ds/$val/kvm.sh.err"
69 nerrs=$((nerrs+1))
71 done
72 done
73 done
74 if test "$nerrs" -ne 0
75 then
76 exit 1
78 exit 0