Message ID | 20200701094635.19491-1-pbonzini@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [kvm-unit-tests] scripts: Fix the check whether testname is in the only_tests list | expand |
On 01/07/2020 11.46, Paolo Bonzini wrote: > 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@redhat.com> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > 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 " > +} Ah, clever idea with the surrounding spaces here! Works great for me, so: Tested-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com>
On 01/07/20 11:52, Thomas Huth wrote: >> +function find_word() >> +{ >> + grep -q " $1 " <<< " $2 " >> +} > > Ah, clever idea with the surrounding spaces here! That's what you gain from learning to program in GW-BASIC, who wants regular expression when you have INSTR. But seriously: what do you think about adding "-F"? The use of regex in only_tests/only_group is not documented and might have surprising effects. If we want to keep it, we could replace spaces with newlines and use ^$ in the regex. Paolo > Works great for me, so: > Tested-by: Thomas Huth <thuth@redhat.com> > Reviewed-by: Thomas Huth <thuth@redhat.com> >
On 01/07/2020 12.05, Paolo Bonzini wrote: > On 01/07/20 11:52, Thomas Huth wrote: >>> +function find_word() >>> +{ >>> + grep -q " $1 " <<< " $2 " >>> +} >> >> Ah, clever idea with the surrounding spaces here! > > That's what you gain from learning to program in GW-BASIC, who wants > regular expression when you have INSTR. > > But seriously: what do you think about adding "-F"? The use of regex in > only_tests/only_group is not documented and might have surprising > effects. If we want to keep it, we could replace spaces with newlines > and use ^$ in the regex. -F sounds fine to me. I'm not aware of anybody trying to use regular expressions in the list of tests, so that should be fine, I think. Thomas
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;
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@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- scripts/runtime.bash | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)