torture: Allow #CHECK# in --kconfig argument to kvm.sh
Testing building of a given RCU Tasks flavor with the other two flavors disabled requires checking that the other two flavors are in fact disabled. This commit therefore modifies the scripting to permit things like "#CHECK#CONFIG_TASKS_TRACE_RCU=n" to be passed into the kvm.sh script's --kconfig parameter. Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
parent
4f64435417
commit
5cec64e495
|
|
@ -3,6 +3,8 @@
|
|||
#
|
||||
# Usage: configcheck.sh .config .config-template
|
||||
#
|
||||
# Non-empty output if errors detected.
|
||||
#
|
||||
# Copyright (C) IBM Corporation, 2011
|
||||
#
|
||||
# Authors: Paul E. McKenney <paulmck@linux.ibm.com>
|
||||
|
|
@ -10,32 +12,35 @@
|
|||
T="`mktemp -d ${TMPDIR-/tmp}/configcheck.sh.XXXXXX`"
|
||||
trap 'rm -rf $T' 0
|
||||
|
||||
sed -e 's/"//g' < $1 > $T/.config
|
||||
# function test_kconfig_enabled ( Kconfig-var=val )
|
||||
function test_kconfig_enabled () {
|
||||
if ! grep -q "^$1$" $T/.config
|
||||
then
|
||||
echo :$1: improperly set
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
sed -e 's/"//g' -e 's/\(.*\)=n/# \1 is not set/' -e 's/^#CHECK#//' < $2 |
|
||||
awk '
|
||||
{
|
||||
print "if grep -q \"" $0 "\" < '"$T/.config"'";
|
||||
print "then";
|
||||
print "\t:";
|
||||
print "else";
|
||||
if ($1 == "#") {
|
||||
print "\tif grep -q \"" $2 "\" < '"$T/.config"'";
|
||||
print "\tthen";
|
||||
print "\t\tif test \"$firsttime\" = \"\""
|
||||
print "\t\tthen"
|
||||
print "\t\t\tfirsttime=1"
|
||||
print "\t\tfi"
|
||||
print "\t\techo \":" $2 ": improperly set\"";
|
||||
print "\telse";
|
||||
print "\t\t:";
|
||||
print "\tfi";
|
||||
} else {
|
||||
print "\tif test \"$firsttime\" = \"\""
|
||||
print "\tthen"
|
||||
print "\t\tfirsttime=1"
|
||||
print "\tfi"
|
||||
print "\techo \":" $0 ": improperly set\"";
|
||||
}
|
||||
print "fi";
|
||||
}' | sh
|
||||
# function test_kconfig_disabled ( Kconfig-var )
|
||||
function test_kconfig_disabled () {
|
||||
if grep -q "^$1=n$" $T/.config
|
||||
then
|
||||
return 0
|
||||
fi
|
||||
if grep -q "^$1=" $T/.config
|
||||
then
|
||||
echo :$1=n: improperly set
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
sed -e 's/"//g' < $1 > $T/.config
|
||||
sed -e 's/^#CHECK#//' < $2 > $T/ConfigFragment
|
||||
grep '^CONFIG_.*=n$' $T/ConfigFragment |
|
||||
sed -e 's/^/test_kconfig_disabled /' -e 's/=n$//' > $T/kconfig-n.sh
|
||||
. $T/kconfig-n.sh
|
||||
grep -v '^CONFIG_.*=n$' $T/ConfigFragment | grep '^CONFIG_' |
|
||||
sed -e 's/^/test_kconfig_enabled /' > $T/kconfig-not-n.sh
|
||||
. $T/kconfig-not-n.sh
|
||||
|
|
|
|||
|
|
@ -57,7 +57,6 @@ config_override_param () {
|
|||
cat $T/Kconfig_args >> $resdir/ConfigFragment.input
|
||||
config_override.sh $T/$2 $T/Kconfig_args > $T/$2.tmp
|
||||
mv $T/$2.tmp $T/$2
|
||||
# Note that "#CHECK#" is not permitted on commandline.
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ do
|
|||
fi
|
||||
;;
|
||||
--kconfig|--kconfigs)
|
||||
checkarg --kconfig "(Kconfig options)" $# "$2" '^CONFIG_[A-Z0-9_]\+=\([ynm]\|[0-9]\+\|"[^"]*"\)\( CONFIG_[A-Z0-9_]\+=\([ynm]\|[0-9]\+\|"[^"]*"\)\)*$' '^error$'
|
||||
checkarg --kconfig "(Kconfig options)" $# "$2" '^\(#CHECK#\)\?CONFIG_[A-Z0-9_]\+=\([ynm]\|[0-9]\+\|"[^"]*"\)\( \(#CHECK#\)\?CONFIG_[A-Z0-9_]\+=\([ynm]\|[0-9]\+\|"[^"]*"\)\)*$' '^error$'
|
||||
TORTURE_KCONFIG_ARG="`echo "$TORTURE_KCONFIG_ARG $2" | sed -e 's/^ *//' -e 's/ *$//'`"
|
||||
shift
|
||||
;;
|
||||
|
|
|
|||
Loading…
Reference in New Issue