[LTP] [PATCH v2] skipfile: allow regular expressions
Daniel Sangorrin
daniel.sangorrin@toshiba.co.jp
Tue Jan 30 08:15:33 CET 2018
Hi Cyril,
> -----Original Message-----
> From: Cyril Hrubis [mailto:chrubis@suse.cz]
> Sent: Tuesday, January 23, 2018 12:19 AM
> To: Daniel Sangorrin
> Cc: ltp@lists.linux.it
> Subject: Re: [LTP] [PATCH v2] skipfile: allow regular expressions
>
> Hi!
> > --- a/runltp
> > +++ b/runltp
> > @@ -692,10 +692,11 @@ main()
> > fi
> >
> > # Blacklist or skip tests if a SKIPFILE was specified with -S
> > + # The SKIPFILE can contain regular expressions (e.g.: cron.*)
> > if [ -n "${SKIPFILE}" ]; then
> > for test_name in $(awk '{print $1}' "${SKIPFILE}"); do
> > case "${test_name}" in \#*) continue;; esac
> > - sed -i "/\<${test_name}\>/c\\${test_name} exit 32;" alltests
> > + sed -i "s/^\(${test_name}\)\s.*/\1 exit 32;/" alltests
> > done
> > fi
>
> Looks good, but please update runltplite.sh as well.
Sorry for the delay. I found that my patch had a flaw while testing it on runltplite.sh.
For example, "rwtest.*" doesn't work for rwtest:
rwtest01 export LTPROOT; rwtest -N rwtest01 -c -q -i 60s -f sync ..
The reason is that "rwtest.*" matches too much. If I use "rwtest[a-zA-Z0-9]" as a regex on the skipfile
then it works as expected
Example:
$ STRING="rwtest01 export LTPROOT; rwtest -N rwtest01 -c -q -i 60s -f"
$ sed "s/^\(rwtest.*\)\s.*/\1 exit 32;/" <<< $STRING
rwtest01 export LTPROOT; rwtest -N rwtest01 -c -q -i 60s -f exit 32 (BAD!!)
$ sed "s/^\(rwtest[a-zA-Z0-9]*\)\s.*/\1 exit 32;/" <<< $STRING
rwtest01 exit 32 (GOOD!!)
I think that the skipfile entries should only care about the testname, so "rwtest.*" should actually
work. I have tried modifying the sed instruction but I wasn't able to isolate the first occurrence.
Should I extract the test_name (first words, except blank lines) from alltests and match them
with the skipfile entries one by one in a loop?
Thanks,
Daniel
> --
> Cyril Hrubis
> chrubis@suse.cz
More information about the ltp
mailing list