From: Eryu Guan <guaneryu@gmail.com>
To: jeffm@suse.com
Cc: fstests@vger.kernel.org, mcgrof@suse.com, nborisov@suse.com,
fdmanana@suse.com
Subject: Re: [PATCH] check: annotate good and expunged tests in results
Date: Tue, 24 Apr 2018 17:36:46 +0800 [thread overview]
Message-ID: <20180424093646.GA11384@desktop> (raw)
In-Reply-To: <20180412213838.28929-1-jeffm@suse.com>
On Thu, Apr 12, 2018 at 05:38:38PM -0400, jeffm@suse.com wrote:
> From: Jeff Mahoney <jeffm@suse.com>
[Sorry for the late review..]
>
> Currently, we only create results files when a test has failed or was
> supposed to run but some dependency wasn't met causing it not to run.
> Short of saving the summary at the end of the run, there's no way to tell
> which tests passed or which tests weren't run due to being excluded.
>
> This patch moves successful test results to $seqres.out.good to annotate
> good results. It also adds tests excluded by group to the $tmp.xlist file
> and adds annotations for every test excluded. When a test is expunged
I can see that annotating tests excluded by group is helpful, but I
don't think we need $seqres.out.good, passed tests are already shown by
check, and $seqres.out.good is same as the golden image, it looks
redundant.
> during execution, an expunged message will be issued and a
> $seqres.expunged file will be created, both containing the reason for
> the test being expunged. Reasons can be "command line", "file $filename",
> or "group <group> [group...]".
>
> This makes the output more noisy in the expunged case and makes startup
> take slightly longer, but ends up with results that can be more easily
> parsed by automated tools.
>
> Signed-off-by: Jeff Mahoney <jeffm@suse.com>
> ---
> check | 57 +++++++++++++++++++++++++++++++--------------------------
> 1 file changed, 31 insertions(+), 26 deletions(-)
>
> diff --git a/check b/check
> index 546683c5..9a1f4e7e 100755
> --- a/check
> +++ b/check
> @@ -173,28 +173,18 @@ get_all_tests()
> done
> }
>
> -# takes the list of tests to run in $tmp.list, and removes the tests passed to
> -# the function from that list.
> +# takes the list of tests to run in $tmp.list and adds them to the excluded
> +# test list, annotated with the group that excluded each one
The comments don't seem quite right, the new behavior doesn't take tests
from $tmp.list, it just edits the $tmp.xlist file for later use.
> trim_test_list()
> {
> + group=$1
Please declare local variable as 'local' when possible.
> + shift
> test_list="$*"
>
> - rm -f $tmp.grep
> - numsed=0
> - for t in $test_list
> - do
> - if [ $numsed -gt 100 ]; then
> - grep -v -f $tmp.grep <$tmp.list >$tmp.tmp
> - mv $tmp.tmp $tmp.list
> - numsed=0
> - rm -f $tmp.grep
> - fi
> - echo "^$t\$" >>$tmp.grep
> - numsed=`expr $numsed + 1`
> + for test in $test_list; do
> + test=${test##tests/}
> + echo "$test group $group" >> $tmp.xlist
> done
> - grep -v -f $tmp.grep <$tmp.list >$tmp.tmp
> - mv $tmp.tmp $tmp.list
> - rm -f $tmp.grep
> }
>
>
> @@ -246,7 +236,7 @@ _prepare_test_list()
> exit 1
> fi
>
> - trim_test_list $list
> + trim_test_list $xgroup $list
> done
>
> # sort the list of tests into numeric order
> @@ -285,13 +275,15 @@ while [ $# -gt 0 ]; do
> for d in $SRC_GROUPS $FSTYP; do
> [ -f $SRC_DIR/$d/$xfile ] || continue
> for f in `sed "s/#.*$//" $SRC_DIR/$d/$xfile`; do
> - echo $d/$f >> $tmp.xlist
> + echo "$d/$f command line" >> $tmp.xlist
> done
> done
> ;;
> -E) xfile=$2; shift ;
> if [ -f $xfile ]; then
> - sed "s/#.*$//" "$xfile" >> $tmp.xlist
> + sed -e "s/#.*$//" \
> + -e "s;$; file $xfile;" "$xfile" \
> + >> $tmp.xlist
When using config section, e.g. ./check -s <sec_name>, and FSTYP is
different in new section, check will do _prepare_test_list again, so
tests selected by "-x <xgroup>" will be listed twice in $tmp.xlist file,
as a result, I see duplicated group names in the annotate message, e.g.
generic/458 [expunged] group metadata metadata
I think we should move above "-X/-E" handlings to _prepare_test_list,
only assign variable "xfile" here (use a new variable for -E option,
perhaps). So that we could simply remove $tmp.xlist before calling
_prepare_test_list again, and it could exclude all specified tests only
once. Maybe as patch 1/2 in a patchset.
> fi
> ;;
> -s) RUN_SECTION="$RUN_SECTION $2"; shift ;;
> @@ -491,11 +483,17 @@ _check_filesystems()
> _expunge_test()
> {
> local TEST_ID="$1"
> + local OUTPUT="$2"
OUTPUT is not used.
> if [ -s $tmp.xlist ]; then
> - if grep -q $TEST_ID $tmp.xlist; then
> - echo " [expunged]"
> + grep $TEST_ID $tmp.xlist > $tmp._expunge_test
> + if [ $? -eq 0 ]; then
> + sed -e "s;$TEST_ID ;;" $tmp._expunge_test | \
> + tr '\n' ' ' | sed -e 's; group;;g'
> + echo
> + rm -f $tmp._expunge_test
> return 1
> fi
> + rm -f $tmp._expunge_test
> fi
> return 0
> }
> @@ -670,8 +668,10 @@ for section in $HOST_OPTIONS_SECTIONS; do
> echo -n "$seqnum"
>
> if $showme; then
> - _expunge_test $seqnum
> + _expunge_test $seqnum > $tmp.xreason
> if [ $? -eq 1 ]; then
> + echo -n " [expunged] "
> + cat $tmp.xreason
> continue
> fi
> echo
> @@ -689,11 +689,15 @@ for section in $HOST_OPTIONS_SECTIONS; do
> else
> # really going to try and run this one
> #
> - rm -f $seqres.out.bad
> + rm -f $seqres.out.bad $seqres.out.good $seqres.expunged
> + rm -f $seqres.notrun
>
> # check if we really should run it
> - _expunge_test $seqnum
> + _expunge_test $seqnum > $tmp.xreason
> if [ $? -eq 1 ]; then
> + mv $tmp.xreason $seqres.expunged
> + echo -n " [expunged] "
> + cat $seqres.expunged
> continue
> fi
>
> @@ -704,7 +708,7 @@ for section in $HOST_OPTIONS_SECTIONS; do
> else
> echo -n " " # prettier output with timestamps.
> fi
> - rm -f core $seqres.notrun
> + rm -f core
>
> start=`_wallclock`
> $timestamp && echo -n " ["`date "+%T"`"]"
> @@ -770,6 +774,7 @@ for section in $HOST_OPTIONS_SECTIONS; do
> else
> echo "$seqnum `expr $stop - $start`" >>$tmp.time
> echo -n " `expr $stop - $start`s"
> + mv $tmp.out $seqres.out.good
As said above, I don't think it's that useful.
Thanks,
Eryu
> fi
> echo ""
> else
> --
> 2.15.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe fstests" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2018-04-24 9:36 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-12 21:38 [PATCH] check: annotate good and expunged tests in results jeffm
2018-04-24 9:36 ` Eryu Guan [this message]
2018-04-24 18:03 ` Jeff Mahoney
2018-04-27 11:23 ` Eryu Guan
2018-04-27 17:00 ` Luis R. Rodriguez
2018-04-28 2:45 ` Eryu Guan
2018-04-30 20:48 ` Jeff Mahoney
2018-05-01 13:34 ` Jeff Mahoney
2018-05-01 14:44 ` Jeff Mahoney
2019-02-12 17:04 ` Luis Chamberlain
2019-02-14 14:13 ` Jeff Mahoney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180424093646.GA11384@desktop \
--to=guaneryu@gmail.com \
--cc=fdmanana@suse.com \
--cc=fstests@vger.kernel.org \
--cc=jeffm@suse.com \
--cc=mcgrof@suse.com \
--cc=nborisov@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox