Skip to content

Commit dd3ffd1

Browse files
committed
torture: Add RCU Tasks individual-flavor build tests
This commit adds build tests of the individual RCU Tasks flavors in order to detect inadvertent dependencies among the flavors. Reported-by: Arnd Bergmann <[email protected]> Signed-off-by: Paul E. McKenney <[email protected]>
1 parent cd1955d commit dd3ffd1

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

tools/testing/selftests/rcutorture/bin/torture.sh

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ do_kasan=yes
5555
do_kcsan=no
5656
do_clocksourcewd=yes
5757
do_rt=yes
58+
do_rcutasksflavors=yes
5859

5960
# doyesno - Helper function for yes/no arguments
6061
function doyesno () {
@@ -81,6 +82,7 @@ usage () {
8182
echo " --do-locktorture / --do-no-locktorture / --no-locktorture"
8283
echo " --do-none"
8384
echo " --do-rcuscale / --do-no-rcuscale / --no-rcuscale"
85+
echo " --do-rcutasksflavors / --do-no-rcutasksflavors / --no-rcutasksflavors"
8486
echo " --do-rcutorture / --do-no-rcutorture / --no-rcutorture"
8587
echo " --do-refscale / --do-no-refscale / --no-refscale"
8688
echo " --do-rt / --do-no-rt / --no-rt"
@@ -115,6 +117,7 @@ do
115117
;;
116118
--do-all|--doall)
117119
do_allmodconfig=yes
120+
do_rcutasksflavor=yes
118121
do_rcutorture=yes
119122
do_locktorture=yes
120123
do_scftorture=yes
@@ -146,6 +149,7 @@ do
146149
;;
147150
--do-none|--donone)
148151
do_allmodconfig=no
152+
do_rcutasksflavors=no
149153
do_rcutorture=no
150154
do_locktorture=no
151155
do_scftorture=no
@@ -160,6 +164,9 @@ do
160164
--do-rcuscale|--do-no-rcuscale|--no-rcuscale)
161165
do_rcuscale=`doyesno "$1" --do-rcuscale`
162166
;;
167+
--do-rcutasksflavors|--do-no-rcutasksflavors|--no-rcutasksflavors)
168+
do_rcutasksflavors=`doyesno "$1" --do-rcutasksflavors`
169+
;;
163170
--do-rcutorture|--do-no-rcutorture|--no-rcutorture)
164171
do_rcutorture=`doyesno "$1" --do-rcutorture`
165172
;;
@@ -361,6 +368,40 @@ then
361368
fi
362369
fi
363370

371+
# Test building RCU Tasks flavors in isolation, both SMP and !SMP
372+
if test "$do_rcutasksflavors" = "yes"
373+
then
374+
echo " --- rcutasksflavors:" Start `date` | tee -a $T/log
375+
rtfdir="tools/testing/selftests/rcutorture/res/$ds/results-rcutasksflavors"
376+
mkdir -p "$rtfdir"
377+
cat > $T/rcutasksflavors << __EOF__
378+
#CHECK#CONFIG_TASKS_RCU=n
379+
#CHECK#CONFIG_TASKS_RUDE_RCU=n
380+
#CHECK#CONFIG_TASKS_TRACE_RCU=n
381+
__EOF__
382+
for flavor in CONFIG_TASKS_RCU CONFIG_TASKS_RUDE_RCU CONFIG_TASKS_TRACE_RCU
383+
do
384+
forceflavor="`echo $flavor | sed -e 's/^CONFIG/CONFIG_FORCE/'`"
385+
deselectedflavors="`grep -v $flavor $T/rcutasksflavors | tr '\012' ' ' | tr -s ' ' | sed -e 's/ *$//'`"
386+
echo " --- Running RCU Tasks Trace flavor $flavor `date`" >> $rtfdir/log
387+
tools/testing/selftests/rcutorture/bin/kvm.sh --datestamp "$ds/results-rcutasksflavors/$flavor" --buildonly --configs "TINY01 TREE04" --kconfig "CONFIG_RCU_EXPERT=y CONFIG_RCU_SCALE_TEST=y $forceflavor=y $deselectedflavors" --trust-make > $T/$flavor.out 2>&1
388+
retcode=$?
389+
if test "$retcode" -ne 0
390+
then
391+
break
392+
fi
393+
done
394+
if test "$retcode" -eq 0
395+
then
396+
echo "rcutasksflavors($retcode)" $rtfdir >> $T/successes
397+
echo Success >> $rtfdir/log
398+
else
399+
echo "rcutasksflavors($retcode)" $rtfdir >> $T/failures
400+
echo " --- rcutasksflavors Test summary:" >> $rtfdir/log
401+
echo " --- Summary: Exit code $retcode from $flavor, see Make.out" >> $rtfdir/log
402+
fi
403+
fi
404+
364405
# --torture rcu
365406
if test "$do_rcutorture" = "yes"
366407
then

0 commit comments

Comments
 (0)