public inbox for fstests@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] check: annotate good and expunged tests in results
@ 2018-04-12 21:38 jeffm
  2018-04-24  9:36 ` Eryu Guan
  0 siblings, 1 reply; 11+ messages in thread
From: jeffm @ 2018-04-12 21:38 UTC (permalink / raw)
  To: fstests; +Cc: mcgrof, nborisov, fdmanana, Jeff Mahoney

From: Jeff Mahoney <jeffm@suse.com>

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
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
 trim_test_list()
 {
+	group=$1
+	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
 	        fi
 		;;
 	-s)	RUN_SECTION="$RUN_SECTION $2"; shift ;;
@@ -491,11 +483,17 @@ _check_filesystems()
 _expunge_test()
 {
 	local TEST_ID="$1"
+	local OUTPUT="$2"
 	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
 			    fi
 			    echo ""
 			else
-- 
2.15.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH] check: annotate good and expunged tests in results
  2018-04-12 21:38 [PATCH] check: annotate good and expunged tests in results jeffm
@ 2018-04-24  9:36 ` Eryu Guan
  2018-04-24 18:03   ` Jeff Mahoney
  0 siblings, 1 reply; 11+ messages in thread
From: Eryu Guan @ 2018-04-24  9:36 UTC (permalink / raw)
  To: jeffm; +Cc: fstests, mcgrof, nborisov, fdmanana

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] check: annotate good and expunged tests in results
  2018-04-24  9:36 ` Eryu Guan
@ 2018-04-24 18:03   ` Jeff Mahoney
  2018-04-27 11:23     ` Eryu Guan
  0 siblings, 1 reply; 11+ messages in thread
From: Jeff Mahoney @ 2018-04-24 18:03 UTC (permalink / raw)
  To: Eryu Guan; +Cc: fstests, mcgrof, nborisov, fdmanana

On 4/24/18 5:36 AM, Eryu Guan wrote:
> 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..]

Thanks for the review just the same.

>> 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.

The contents are redundant, but the purpose of the file existing isn't.
My goal is to be able to point a script at the results directory for a
test run and autogenerate a table of results and/or compare them to
known results.  Right now, there's no way to tell whether a test was run
at all, only that it failed or was skipped due to some missing
dependency.  The expunge changes handle the explicitly skipped cases,
but without the .good files, there's nothing indicating a test actually
ran or when it last did.  The contents don't have to be the output.  If
you can think of something more useful there (or if we just create an
empty file), that's fine too.
>> -# 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.

Right.  I missed updating the comment after changing the behavior.

>>  trim_test_list()
>>  {
>> +	group=$1
> 
> Please declare local variable as 'local' when possible.

Ok.

> 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.

Ok, that's easy enough to do.

>>  	        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.

Ack.

>> @@ -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.

It doesn't need to be the contents of the output, but I'd like it to be
*something* and moving a file that already exists is as easy as creating
a new one.

-Jeff

-- 
Jeff Mahoney
SUSE Labs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] check: annotate good and expunged tests in results
  2018-04-24 18:03   ` Jeff Mahoney
@ 2018-04-27 11:23     ` Eryu Guan
  2018-04-27 17:00       ` Luis R. Rodriguez
  0 siblings, 1 reply; 11+ messages in thread
From: Eryu Guan @ 2018-04-27 11:23 UTC (permalink / raw)
  To: Jeff Mahoney; +Cc: fstests, mcgrof, nborisov, fdmanana

On Tue, Apr 24, 2018 at 02:03:24PM -0400, Jeff Mahoney wrote:
> On 4/24/18 5:36 AM, Eryu Guan wrote:
> > 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..]
> 
> Thanks for the review just the same.
> 
> >> 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.
> 
> The contents are redundant, but the purpose of the file existing isn't.
> My goal is to be able to point a script at the results directory for a
> test run and autogenerate a table of results and/or compare them to
> known results.  Right now, there's no way to tell whether a test was run

But the test run & pass info is already available from the check output
and the test result summary at the end of check. Is that sufficient for
you? Also, we already have mechanism to generate a test report in xunit
format, i.e. ./check -R xunit -g auto, which includes results for passed
& failed & notrun tests.

My concern is that saving .good files consume more and more space over
time, and they don't provide any additional information (even with empty
files that don't require much space).

Thanks,
Eryu

> at all, only that it failed or was skipped due to some missing
> dependency.  The expunge changes handle the explicitly skipped cases,
> but without the .good files, there's nothing indicating a test actually
> ran or when it last did.  The contents don't have to be the output.  If
> you can think of something more useful there (or if we just create an
> empty file), that's fine too.
> >> -# 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.
> 
> Right.  I missed updating the comment after changing the behavior.
> 
> >>  trim_test_list()
> >>  {
> >> +	group=$1
> > 
> > Please declare local variable as 'local' when possible.
> 
> Ok.
> 
> > 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.
> 
> Ok, that's easy enough to do.
> 
> >>  	        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.
> 
> Ack.
> 
> >> @@ -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.
> 
> It doesn't need to be the contents of the output, but I'd like it to be
> *something* and moving a file that already exists is as easy as creating
> a new one.
> 
> -Jeff
> 
> -- 
> Jeff Mahoney
> SUSE Labs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] check: annotate good and expunged tests in results
  2018-04-27 11:23     ` Eryu Guan
@ 2018-04-27 17:00       ` Luis R. Rodriguez
  2018-04-28  2:45         ` Eryu Guan
  0 siblings, 1 reply; 11+ messages in thread
From: Luis R. Rodriguez @ 2018-04-27 17:00 UTC (permalink / raw)
  To: Eryu Guan; +Cc: Jeff Mahoney, fstests, nborisov, fdmanana

On Fri, Apr 27, 2018 at 07:23:56PM +0800, Eryu Guan wrote:
> 
> But the test run & pass info is already available from the check output
> and the test result summary at the end of check. Is that sufficient for
> you? Also, we already have mechanism to generate a test report in xunit
> format, i.e. ./check -R xunit -g auto, which includes results for passed
> & failed & notrun tests.

Do we have a way to parse the results *after* a run? For instance,
if you forgot -R xunit ?

  Luis

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] check: annotate good and expunged tests in results
  2018-04-27 17:00       ` Luis R. Rodriguez
@ 2018-04-28  2:45         ` Eryu Guan
  2018-04-30 20:48           ` Jeff Mahoney
  0 siblings, 1 reply; 11+ messages in thread
From: Eryu Guan @ 2018-04-28  2:45 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: Jeff Mahoney, fstests, nborisov, fdmanana

On Fri, Apr 27, 2018 at 05:00:09PM +0000, Luis R. Rodriguez wrote:
> On Fri, Apr 27, 2018 at 07:23:56PM +0800, Eryu Guan wrote:
> > 
> > But the test run & pass info is already available from the check output
> > and the test result summary at the end of check. Is that sufficient for
> > you? Also, we already have mechanism to generate a test report in xunit
> > format, i.e. ./check -R xunit -g auto, which includes results for passed
> > & failed & notrun tests.
> 
> Do we have a way to parse the results *after* a run? For instance,
> if you forgot -R xunit ?

There's a tools/compare-failures script that takes the outputs of check
as inputs and compares the results. But, TBH, I never run it after
reviewing it.. Perhaps it could be enhanced somehow.

Thanks,
Eryu

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] check: annotate good and expunged tests in results
  2018-04-28  2:45         ` Eryu Guan
@ 2018-04-30 20:48           ` Jeff Mahoney
  2018-05-01 13:34             ` Jeff Mahoney
  0 siblings, 1 reply; 11+ messages in thread
From: Jeff Mahoney @ 2018-04-30 20:48 UTC (permalink / raw)
  To: Eryu Guan, Luis R. Rodriguez; +Cc: fstests, nborisov, fdmanana

On 4/27/18 10:45 PM, Eryu Guan wrote:
> On Fri, Apr 27, 2018 at 05:00:09PM +0000, Luis R. Rodriguez wrote:
>> On Fri, Apr 27, 2018 at 07:23:56PM +0800, Eryu Guan wrote:
>>>
>>> But the test run & pass info is already available from the check output
>>> and the test result summary at the end of check. Is that sufficient for
>>> you? Also, we already have mechanism to generate a test report in xunit
>>> format, i.e. ./check -R xunit -g auto, which includes results for passed
>>> & failed & notrun tests.
>>
>> Do we have a way to parse the results *after* a run? For instance,
>> if you forgot -R xunit ?
> 
> There's a tools/compare-failures script that takes the outputs of check
> as inputs and compares the results. But, TBH, I never run it after
> reviewing it.. Perhaps it could be enhanced somehow.

Yeah, that takes check output.  Without capturing it at runtime, it
can't compare anything.

The XML report may do most of what I want provided we can enable it by
default and write it someplace safe rather than clean it up
automatically when the test run is interrupted.

I already have test code that extends it to output expunged tests and to
add an explicit <pass/> element.  It saves the timestamps already, so
that's a plus.

-Jeff

-- 
Jeff Mahoney
SUSE Labs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] check: annotate good and expunged tests in results
  2018-04-30 20:48           ` Jeff Mahoney
@ 2018-05-01 13:34             ` Jeff Mahoney
  2018-05-01 14:44               ` Jeff Mahoney
  0 siblings, 1 reply; 11+ messages in thread
From: Jeff Mahoney @ 2018-05-01 13:34 UTC (permalink / raw)
  To: Eryu Guan, Luis R. Rodriguez; +Cc: fstests, nborisov, fdmanana

On 4/30/18 4:48 PM, Jeff Mahoney wrote:
> On 4/27/18 10:45 PM, Eryu Guan wrote:
>> On Fri, Apr 27, 2018 at 05:00:09PM +0000, Luis R. Rodriguez wrote:
>>> On Fri, Apr 27, 2018 at 07:23:56PM +0800, Eryu Guan wrote:
>>>>
>>>> But the test run & pass info is already available from the check output
>>>> and the test result summary at the end of check. Is that sufficient for
>>>> you? Also, we already have mechanism to generate a test report in xunit
>>>> format, i.e. ./check -R xunit -g auto, which includes results for passed
>>>> & failed & notrun tests.
>>>
>>> Do we have a way to parse the results *after* a run? For instance,
>>> if you forgot -R xunit ?
>>
>> There's a tools/compare-failures script that takes the outputs of check
>> as inputs and compares the results. But, TBH, I never run it after
>> reviewing it.. Perhaps it could be enhanced somehow.
> 
> Yeah, that takes check output.  Without capturing it at runtime, it
> can't compare anything.
> 
> The XML report may do most of what I want provided we can enable it by
> default and write it someplace safe rather than clean it up
> automatically when the test run is interrupted.
> 
> I already have test code that extends it to output expunged tests and to
> add an explicit <pass/> element.  It saves the timestamps already, so
> that's a plus.

And shortly after writing this, I had a test run hang.  Since it hung,
even writing it on exit wouldn't have worked.  There's not enough
information leftover to generate it.  I think I'd still like the results
directory to contain the information required to generate it as a
post-mortem.

-Jeff

-- 
Jeff Mahoney
SUSE Labs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] check: annotate good and expunged tests in results
  2018-05-01 13:34             ` Jeff Mahoney
@ 2018-05-01 14:44               ` Jeff Mahoney
  2019-02-12 17:04                 ` Luis Chamberlain
  0 siblings, 1 reply; 11+ messages in thread
From: Jeff Mahoney @ 2018-05-01 14:44 UTC (permalink / raw)
  To: Eryu Guan, Luis R. Rodriguez; +Cc: fstests, nborisov, fdmanana

On 5/1/18 9:34 AM, Jeff Mahoney wrote:
> On 4/30/18 4:48 PM, Jeff Mahoney wrote:
>> On 4/27/18 10:45 PM, Eryu Guan wrote:
>>> On Fri, Apr 27, 2018 at 05:00:09PM +0000, Luis R. Rodriguez wrote:
>>>> On Fri, Apr 27, 2018 at 07:23:56PM +0800, Eryu Guan wrote:
>>>>>
>>>>> But the test run & pass info is already available from the check output
>>>>> and the test result summary at the end of check. Is that sufficient for
>>>>> you? Also, we already have mechanism to generate a test report in xunit
>>>>> format, i.e. ./check -R xunit -g auto, which includes results for passed
>>>>> & failed & notrun tests.
>>>>
>>>> Do we have a way to parse the results *after* a run? For instance,
>>>> if you forgot -R xunit ?
>>>
>>> There's a tools/compare-failures script that takes the outputs of check
>>> as inputs and compares the results. But, TBH, I never run it after
>>> reviewing it.. Perhaps it could be enhanced somehow.
>>
>> Yeah, that takes check output.  Without capturing it at runtime, it
>> can't compare anything.
>>
>> The XML report may do most of what I want provided we can enable it by
>> default and write it someplace safe rather than clean it up
>> automatically when the test run is interrupted.
>>
>> I already have test code that extends it to output expunged tests and to
>> add an explicit <pass/> element.  It saves the timestamps already, so
>> that's a plus.
> 
> And shortly after writing this, I had a test run hang.  Since it hung,
> even writing it on exit wouldn't have worked.  There's not enough
> information leftover to generate it.  I think I'd still like the results
> directory to contain the information required to generate it as a
> post-mortem.

After thinking on it a bit more, since you object to writing a bunch of
files by default, we could accomplish the same goal by adding a "files"
report type that does this without dropping files for everyone.  I'm
working that up now.

-Jeff

-- 
Jeff Mahoney
SUSE Labs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] check: annotate good and expunged tests in results
  2018-05-01 14:44               ` Jeff Mahoney
@ 2019-02-12 17:04                 ` Luis Chamberlain
  2019-02-14 14:13                   ` Jeff Mahoney
  0 siblings, 1 reply; 11+ messages in thread
From: Luis Chamberlain @ 2019-02-12 17:04 UTC (permalink / raw)
  To: Jeff Mahoney; +Cc: Eryu Guan, fstests, Nikolay Borisov, Filipe Manana

On Tue, May 1, 2018 at 8:44 AM Jeff Mahoney <jeffm@suse.com> wrote:
>
> On 5/1/18 9:34 AM, Jeff Mahoney wrote:
> > On 4/30/18 4:48 PM, Jeff Mahoney wrote:
> >> On 4/27/18 10:45 PM, Eryu Guan wrote:
> >>> On Fri, Apr 27, 2018 at 05:00:09PM +0000, Luis R. Rodriguez wrote:
> >>>> On Fri, Apr 27, 2018 at 07:23:56PM +0800, Eryu Guan wrote:
> >>>>>
> >>>>> But the test run & pass info is already available from the check output
> >>>>> and the test result summary at the end of check. Is that sufficient for
> >>>>> you? Also, we already have mechanism to generate a test report in xunit
> >>>>> format, i.e. ./check -R xunit -g auto, which includes results for passed
> >>>>> & failed & notrun tests.
> >>>>
> >>>> Do we have a way to parse the results *after* a run? For instance,
> >>>> if you forgot -R xunit ?
> >>>
> >>> There's a tools/compare-failures script that takes the outputs of check
> >>> as inputs and compares the results. But, TBH, I never run it after
> >>> reviewing it.. Perhaps it could be enhanced somehow.
> >>
> >> Yeah, that takes check output.  Without capturing it at runtime, it
> >> can't compare anything.
> >>
> >> The XML report may do most of what I want provided we can enable it by
> >> default and write it someplace safe rather than clean it up
> >> automatically when the test run is interrupted.
> >>
> >> I already have test code that extends it to output expunged tests and to
> >> add an explicit <pass/> element.  It saves the timestamps already, so
> >> that's a plus.
> >
> > And shortly after writing this, I had a test run hang.  Since it hung,
> > even writing it on exit wouldn't have worked.  There's not enough
> > information leftover to generate it.  I think I'd still like the results
> > directory to contain the information required to generate it as a
> > post-mortem.
>
> After thinking on it a bit more, since you object to writing a bunch of
> files by default, we could accomplish the same goal by adding a "files"
> report type that does this without dropping files for everyone.  I'm
> working that up now.

How's that going BTW? :)

 Luis

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] check: annotate good and expunged tests in results
  2019-02-12 17:04                 ` Luis Chamberlain
@ 2019-02-14 14:13                   ` Jeff Mahoney
  0 siblings, 0 replies; 11+ messages in thread
From: Jeff Mahoney @ 2019-02-14 14:13 UTC (permalink / raw)
  To: Luis Chamberlain; +Cc: Eryu Guan, fstests, Nikolay Borisov, Filipe Manana

On 2/12/19 12:04 PM, Luis Chamberlain wrote:
> On Tue, May 1, 2018 at 8:44 AM Jeff Mahoney <jeffm@suse.com> wrote:
>>
>> On 5/1/18 9:34 AM, Jeff Mahoney wrote:
>>> On 4/30/18 4:48 PM, Jeff Mahoney wrote:
>>>> On 4/27/18 10:45 PM, Eryu Guan wrote:
>>>>> On Fri, Apr 27, 2018 at 05:00:09PM +0000, Luis R. Rodriguez wrote:
>>>>>> On Fri, Apr 27, 2018 at 07:23:56PM +0800, Eryu Guan wrote:
>>>>>>>
>>>>>>> But the test run & pass info is already available from the check output
>>>>>>> and the test result summary at the end of check. Is that sufficient for
>>>>>>> you? Also, we already have mechanism to generate a test report in xunit
>>>>>>> format, i.e. ./check -R xunit -g auto, which includes results for passed
>>>>>>> & failed & notrun tests.
>>>>>>
>>>>>> Do we have a way to parse the results *after* a run? For instance,
>>>>>> if you forgot -R xunit ?
>>>>>
>>>>> There's a tools/compare-failures script that takes the outputs of check
>>>>> as inputs and compares the results. But, TBH, I never run it after
>>>>> reviewing it.. Perhaps it could be enhanced somehow.
>>>>
>>>> Yeah, that takes check output.  Without capturing it at runtime, it
>>>> can't compare anything.
>>>>
>>>> The XML report may do most of what I want provided we can enable it by
>>>> default and write it someplace safe rather than clean it up
>>>> automatically when the test run is interrupted.
>>>>
>>>> I already have test code that extends it to output expunged tests and to
>>>> add an explicit <pass/> element.  It saves the timestamps already, so
>>>> that's a plus.
>>>
>>> And shortly after writing this, I had a test run hang.  Since it hung,
>>> even writing it on exit wouldn't have worked.  There's not enough
>>> information leftover to generate it.  I think I'd still like the results
>>> directory to contain the information required to generate it as a
>>> post-mortem.
>>
>> After thinking on it a bit more, since you object to writing a bunch of
>> files by default, we could accomplish the same goal by adding a "files"
>> report type that does this without dropping files for everyone.  I'm
>> working that up now.
> 
> How's that going BTW? :)

I've had it working for a while.  It's kind of messy at the moment and
drops files in the same output dir as the test results.  I'm reworking
it a bit to use a separate files directory under the report/section
directory so it's easier for scripts to work with.

-Jeff


-- 
Jeff Mahoney
SUSE Labs

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2019-02-14 14:13 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-12 21:38 [PATCH] check: annotate good and expunged tests in results jeffm
2018-04-24  9:36 ` Eryu Guan
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox