[PATCH 4/6] report: fix xunit tests count

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



The xunit "section report" provides a tests attribute, which according
to https://llg.cubic.org/docs/junit/ represents:
tests=""     <!-- The total number of tests in the suite, required. -->

The current value is generated as a sum of the $n_try and $n_notrun
counters. This is incorrect as the $n_try counter already includes tests
which are run but complete with _notrun.
One special case exists for $showme (check -n), where $n_try remains
zero, so $n_notrun can be used as-is.

Signed-off-by: David Disseldorp <ddiss@xxxxxxx>
---
 check         | 13 ++++++-------
 common/report | 14 +++++++++-----
 2 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/check b/check
index 43c072d2..a5183d3a 100755
--- a/check
+++ b/check
@@ -430,13 +430,12 @@ _wrapup()
 	seq="check"
 	check="$RESULT_BASE/check"
 
-	if $showme; then
-		if $needwrap; then
-			if $do_report; then
-				_make_section_report
-			fi
-			needwrap=false
+	if $showme && $needwrap; then
+		if $do_report; then
+			# $showme = all selected tests are notrun (no tries)
+			_make_section_report "$n_notrun" "0" "$n_notrun"
 		fi
+		needwrap=false
 	elif $needwrap; then
 		if [ -f $check.time -a -f $tmp.time ]; then
 			cat $check.time $tmp.time  \
@@ -495,7 +494,7 @@ _wrapup()
 		fi
 		echo "" >>$tmp.summary
 		if $do_report; then
-			_make_section_report
+			_make_section_report "$n_try" "$n_bad" "$n_notrun"
 		fi
 		needwrap=false
 	fi
diff --git a/common/report b/common/report
index bf05afa9..84d9e0a7 100644
--- a/common/report
+++ b/common/report
@@ -49,9 +49,11 @@ _xunit_add_property()
 _xunit_make_section_report()
 {
 	# xfstest:section ==> xunit:testsuite
+	local tests_count="$1"
+	local bad_count="$2"
+	local notrun_count="$3"
 	local sect_name=$section
 	local sect_time=`expr $sect_stop - $sect_start`
-	local n_total=`expr $n_try + $n_notrun`
 
 	if [ $sect_name == '-no-sections-' ]; then
 		sect_name='global'
@@ -62,9 +64,8 @@ _xunit_make_section_report()
 	if [ -z "$date_time" ]; then
 		date_time=$(date +"%F %T")
 	fi
-	local dtime=`echo $date_time| tr  " " 'T'`
-	local stats="failures=\"$n_bad\" skipped=\"$n_notrun\" tests=\"$n_total\" time=\"$sect_time\""
-	local hw_info="hostname=\"$HOST\" timestamp=\"$dtime\" "
+	local stats="failures=\"$bad_count\" skipped=\"$notrun_count\" tests=\"$tests_count\" time=\"$sect_time\""
+	local hw_info="hostname=\"$HOST\" timestamp=\"${date_time/ /T}\" "
 	echo "<testsuite name=\"xfstests\" $stats  $hw_info >" >> $REPORT_DIR/result.xml
 
 	# Properties
@@ -149,10 +150,13 @@ _xunit_make_testcase_report()
 #  Common report generator entry points
 _make_section_report()
 {
+	local tests_count="$1"
+	local bad_count="$2"
+	local notrun_count="$3"
 	for report in $REPORT_LIST; do
 		case "$report" in
 		"xunit")
-			_xunit_make_section_report
+			_xunit_make_section_report "$tests_count" "$bad_count" "$notrun_count"
 			;;
 		*)
 			_dump_err "format '$report' is not supported"
-- 
2.35.3




[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux