When you currently run ./run_tests.sh ioapic-split the kvm-unit-tests run scripts do not only execute the "ioapic-split" test, but also the "ioapic" test, which is quite surprising. This happens because we use "grep -w" for checking whether a test should be run or not. Because "grep -w" does not consider the "-" character as part of a word, "ioapic" successfully matches against "ioapic-split". To fix the issue, use spaces as the only delimiter when running "grep", removing the problematic "-w" flag from the invocation. Reported-by: Thomas Huth <thuth@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> --- scripts/runtime.bash | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/scripts/runtime.bash b/scripts/runtime.bash index 8bfe31c..6158e37 100644 --- a/scripts/runtime.bash +++ b/scripts/runtime.bash @@ -68,6 +68,11 @@ function print_result() fi } +function find_word() +{ + grep -q " $1 " <<< " $2 " +} + function run() { local testname="$1" @@ -84,15 +89,15 @@ function run() return fi - if [ -n "$only_tests" ] && ! grep -qw "$testname" <<<$only_tests; then + if [ -n "$only_tests" ] && ! find_word "$testname" "$only_tests"; then return fi - if [ -n "$only_group" ] && ! grep -qw "$only_group" <<<$groups; then + if [ -n "$only_group" ] && ! find_word "$only_group" "$groups"; then return fi - if [ -z "$only_group" ] && grep -qw "nodefault" <<<$groups && + if [ -z "$only_group" ] && find_word nodefault "$groups" && skip_nodefault; then print_result "SKIP" $testname "" "test marked as manual run only" return; -- 2.25.4