Il 27/08/2014 16:45, Chris J Arges ha scritto: > In unittests.cfg one can add a line like the following: > check = /proc/sys/kernel/nmi_watchdog=0 /proc/sys/kernel/ostype=Linux > > run_tests.sh will now check for those values (if defined) and only run > the test if all conditions are true. > > Signed-off-by: Chris J Arges <chris.j.arges@xxxxxxxxxxxxx> > --- > run_tests.sh | 21 +++++++++++++++++++-- > 1 file changed, 19 insertions(+), 2 deletions(-) > > diff --git a/run_tests.sh b/run_tests.sh > index 4758573..e48f1db 100755 > --- a/run_tests.sh > +++ b/run_tests.sh > @@ -18,6 +18,7 @@ function run() > local kernel="$4" > local opts="$5" > local arch="$6" > + local check="$7" > > if [ -z "$testname" ]; then > return > @@ -32,6 +33,18 @@ function run() > return > fi > > + # check a file for a particular value before running a test > + # the check line can contain multiple files to check separated by a space > + # but each check parameter needs to be of the form <path>=<value> > + for check_param in ${check[@]}; do > + path=${check_param%%=*} > + value=${check_param#*=} > + if [ "$path" ] && [ "$(cat $path)" != "$value" ]; then > + echo "skip $1 ($path not equal to $value)" > + return > + fi > + done > + > cmdline="./$TEST_DIR-run $kernel -smp $smp $opts" > if [ $verbose != 0 ]; then > echo $cmdline > @@ -57,18 +70,20 @@ function run_all() > local opts > local groups > local arch > + local check > > exec {config_fd}<$config > > while read -u $config_fd line; do > if [[ "$line" =~ ^\[(.*)\]$ ]]; then > - run "$testname" "$groups" "$smp" "$kernel" "$opts" "$arch" > + run "$testname" "$groups" "$smp" "$kernel" "$opts" "$arch" "$check" > testname=${BASH_REMATCH[1]} > smp=1 > kernel="" > opts="" > groups="" > arch="" > + check="" > elif [[ $line =~ ^file\ *=\ *(.*)$ ]]; then > kernel=$TEST_DIR/${BASH_REMATCH[1]} > elif [[ $line =~ ^smp\ *=\ *(.*)$ ]]; then > @@ -79,10 +94,12 @@ function run_all() > groups=${BASH_REMATCH[1]} > elif [[ $line =~ ^arch\ *=\ *(.*)$ ]]; then > arch=${BASH_REMATCH[1]} > + elif [[ $line =~ ^check\ *=\ *(.*)$ ]]; then > + check=${BASH_REMATCH[1]} > fi > done > > - run "$testname" "$groups" "$smp" "$kernel" "$opts" "$arch" > + run "$testname" "$groups" "$smp" "$kernel" "$opts" "$arch" "$check" > > exec {config_fd}<&- > } > Thanks, looks good. Are there more failures? Paolo -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html