[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-arm] [PATCH v1 22/23] tests/qemu-iotests: re-format output to for
From: |
Alex Bennée |
Subject: |
[Qemu-arm] [PATCH v1 22/23] tests/qemu-iotests: re-format output to for make check-block |
Date: |
Thu, 9 May 2019 17:59:10 +0100 |
This attempts to clean-up the output to better match the output of the
rest of the QEMU check system. This includes:
- formatting as " TEST iotest: nnn"
- calculating time diff at the end
- only dumping config on failure
Signed-off-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>
---
tests/qemu-iotests/check | 101 +++++++++++++++++++++++----------------
1 file changed, 61 insertions(+), 40 deletions(-)
diff --git a/tests/qemu-iotests/check b/tests/qemu-iotests/check
index 922c5d1d3d3..fb239967a32 100755
--- a/tests/qemu-iotests/check
+++ b/tests/qemu-iotests/check
@@ -27,6 +27,7 @@ bad=""
notrun=""
casenotrun=""
interrupt=true
+pretty=false
# by default don't output timestamps
timestamp=${TIMESTAMP:=false}
@@ -88,6 +89,22 @@ _full_platform_details()
echo "$os/$platform $host $kernel"
}
+_full_env_details()
+{
+ cat <<EOF
+QEMU -- "$QEMU_PROG" $QEMU_OPTIONS
+QEMU_IMG -- "$QEMU_IMG_PROG" $QEMU_IMG_OPTIONS
+QEMU_IO -- "$QEMU_IO_PROG" $QEMU_IO_OPTIONS
+QEMU_NBD -- "$QEMU_NBD_PROG" $QEMU_NBD_OPTIONS
+IMGFMT -- $FULL_IMGFMT_DETAILS
+IMGPROTO -- $IMGPROTO
+PLATFORM -- $FULL_HOST_DETAILS
+TEST_DIR -- $TEST_DIR
+SOCKET_SCM_HELPER -- $SOCKET_SCM_HELPER
+
+EOF
+}
+
# $1 = prog to look for
set_prog_path()
{
@@ -256,6 +273,7 @@ other options
-o options -o options to pass to qemu-img create/convert
-T output timestamps
-c mode cache mode
+ -pretty pretty print output for make check
testlist options
-g group[,group...] include tests from these groups
@@ -403,7 +421,10 @@ testlist options
command -v xxdiff >/dev/null 2>&1 && diff=xxdiff
fi
;;
-
+ -pretty) # pretty print output
+ pretty=true
+ xpand=false
+ ;;
-n) # show me, don't do it
showme=true
xpand=false
@@ -633,12 +654,6 @@ _wallclock()
date "+%H %M %S" | awk '{ print $1*3600 + $2*60 + $3 }'
}
-_timestamp()
-{
- now=$(date "+%T")
- printf %s " [$now]"
-}
-
_wrapup()
{
if $showme
@@ -704,23 +719,25 @@ END { if (NR > 0) {
trap "_wrapup; exit \$status" 0 1 2 3 15
+# Report the test result, optionally pretty printing the result
+# args: sequence, results
+_report_test_result()
+{
+ if $pretty; then
+ echo " TEST iotest: $1 $2"
+ else
+ echo "$1 $2"
+ fi
+}
+
[ -f $TIMESTAMP_FILE ] || touch $TIMESTAMP_FILE
FULL_IMGFMT_DETAILS=$(_full_imgfmt_details)
FULL_HOST_DETAILS=$(_full_platform_details)
-cat <<EOF
-QEMU -- "$QEMU_PROG" $QEMU_OPTIONS
-QEMU_IMG -- "$QEMU_IMG_PROG" $QEMU_IMG_OPTIONS
-QEMU_IO -- "$QEMU_IO_PROG" $QEMU_IO_OPTIONS
-QEMU_NBD -- "$QEMU_NBD_PROG" $QEMU_NBD_OPTIONS
-IMGFMT -- $FULL_IMGFMT_DETAILS
-IMGPROTO -- $IMGPROTO
-PLATFORM -- $FULL_HOST_DETAILS
-TEST_DIR -- $TEST_DIR
-SOCKET_SCM_HELPER -- $SOCKET_SCM_HELPER
-
-EOF
+if ! $pretty; then
+ _full_env_details
+fi
seq="check"
@@ -728,8 +745,10 @@ seq="check"
for seq in $list
do
- err=false
- printf %s "$seq"
+ err=false # error flag
+ reason="" # reason for error
+ results="" # results for non-error/skip
+
if [ -n "$TESTS_REMAINING_LOG" ] ; then
sed -e "s/$seq//" -e 's/ / /' -e 's/^ *//' $TESTS_REMAINING_LOG >
$TESTS_REMAINING_LOG.tmp
mv $TESTS_REMAINING_LOG.tmp $TESTS_REMAINING_LOG
@@ -738,7 +757,6 @@ do
if $showme
then
- echo
continue
elif [ -f expunged ] && $expunge && egrep "^$seq([ ]|\$)" expunged
>/dev/null
then
@@ -753,17 +771,11 @@ do
# really going to try and run this one
#
rm -f $seq.out.bad
- lasttime=$(sed -n -e "/^$seq /s/.* //p" <$TIMESTAMP_FILE)
- if [ "X$lasttime" != X ]; then
- printf %s " ${lasttime}s ..."
- else
- printf " " # prettier output with timestamps.
- fi
rm -f core $seq.notrun
rm -f $seq.casenotrun
start=$(_wallclock)
- $timestamp && printf %s " [$(date "+%T")]"
+ $timestamp && echo -n "$seq [$(date "+%T")] ->"
if [ "$(head -n 1 "$source_iotests/$seq")" == "#!/usr/bin/env python"
]; then
run_command="$PYTHON $seq"
@@ -781,26 +793,24 @@ do
$run_command >$tmp.out 2>&1)
fi
sts=$?
- $timestamp && _timestamp
+ $timestamp && echo " [$(date "+%T")]"
stop=$(_wallclock)
if [ -f core ]
then
- printf " [dumped core]"
mv core $seq.core
+ reason="[dumped core] $seq.core"
err=true
fi
if [ -f $seq.notrun ]
then
- $timestamp || printf " [not run] "
- $timestamp && echo " [not run]" && printf %s " $seq -- "
- cat $seq.notrun
- notrun="$notrun $seq"
+ # overwrites timestamp output
+ results="[not run] $(cat $seq.notrun)"
else
if [ $sts -ne 0 ]
then
- printf %s " [failed, exit status $sts]"
+ reason=$(printf %s "[failed, exit status $sts]")
err=true
fi
@@ -821,22 +831,29 @@ do
if [ ! -f "$reference" ]
then
- echo " - no qualified output"
+ reason=" - no qualified output"
err=true
else
if diff -w "$reference" $tmp.out >/dev/null 2>&1
then
- echo ""
if $err
then
:
else
- echo "$seq $(expr $stop - $start)" >>$tmp.time
+ lasttime=$(sed -n -e "/^$seq /s/.* //p"
<$TIMESTAMP_FILE)
+ thistime=$(expr $stop - $start)
+ echo "$seq $thistime" >>$tmp.time
+
+ if [ "X$lasttime" != X ]; then
+ results="${results}${thistime}s (last
${lasttime}s)"
+ else
+ results="${results}${thistime}s"
+ fi
fi
else
- echo " - output mismatch (see $seq.out.bad)"
mv $tmp.out $seq.out.bad
$diff -w "$reference" "$PWD"/$seq.out.bad
+ reason=" - output mismatch (see $seq.out.bad)"
err=true
fi
fi
@@ -852,9 +869,13 @@ do
#
if $err
then
+ _report_test_result $seq "FAILED $reason"
+ _full_env_details
bad="$bad $seq"
n_bad=$(expr $n_bad + 1)
quick=false
+ else
+ _report_test_result $seq "$results"
fi
[ -f $seq.notrun ] || try=$(expr $try + 1)
--
2.20.1
- [Qemu-arm] [PATCH v1 11/23] tests/tcg/alpha: add system boot.S, (continued)
- [Qemu-arm] [PATCH v1 11/23] tests/tcg/alpha: add system boot.S, Alex Bennée, 2019/05/09
- [Qemu-arm] [PATCH v1 15/23] Makefile.target: support per-target coverage reports, Alex Bennée, 2019/05/09
- [Qemu-arm] [PATCH v1 14/23] Makefile: include per-target build directories in coverage report, Alex Bennée, 2019/05/09
- [Qemu-arm] [PATCH v1 12/23] .travis.yml: enable aarch64-softmmu and alpha-softmmu tcg tests, Alex Bennée, 2019/05/09
- [Qemu-arm] [PATCH v1 19/23] cirrus / travis: Add gnu-sed and bash for macOS and FreeBSD, Alex Bennée, 2019/05/09
- [Qemu-arm] [PATCH v1 21/23] tests/qemu-iotests/group: Re-use the "auto" group for tests that can always run, Alex Bennée, 2019/05/09
- [Qemu-arm] [PATCH v1 18/23] tests/qemu-iotests: Do not hard-code the path to bash, Alex Bennée, 2019/05/09
- [Qemu-arm] [PATCH v1 16/23] tests/qemu-iotests/005: Add a sanity check for large sparse file support, Alex Bennée, 2019/05/09
- [Qemu-arm] [PATCH v1 22/23] tests/qemu-iotests: re-format output to for make check-block,
Alex Bennée <=
- Re: [Qemu-arm] [Qemu-devel] [PATCH v1 22/23] tests/qemu-iotests: re-format output to for make check-block, Thomas Huth, 2019/05/10
- [Qemu-arm] [PATCH v1 23/23] tests: Run the iotests during "make check" again, Alex Bennée, 2019/05/09
- [Qemu-arm] [PATCH v1 20/23] tests/qemu-iotests: Remove the "_supported_os Linux" line from many tests, Alex Bennée, 2019/05/09