kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: "Andrew Jones" <drjones@redhat.com>, "Radim Krčmář" <rkrcmar@redhat.com>
Cc: kvm@vger.kernel.org
Subject: Re: [PATCH v3 8/9] run_tests: print summary
Date: Tue, 10 May 2016 13:45:53 +0200	[thread overview]
Message-ID: <5731C9F1.80003@redhat.com> (raw)
In-Reply-To: <20160419071947.3v6fjnbdln47ddno@hawk.localdomain>



On 19/04/2016 09:19, Andrew Jones wrote:
> On Fri, Apr 15, 2016 at 10:52:50PM +0200, Radim Krčmář wrote:
>> SUMMARY line is present if the test uses lib/report.  Summary contains
>> some interesting information, so duplicating the output isn't that big
>> of a cost.  Our log redirection got more complicated, though.
>>
>> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
>> ---
>>  run_tests.sh            |  6 +++---
>>  scripts/mkstandalone.sh |  3 +++
>>  scripts/runtime.bash    | 15 ++++++++++-----
>>  3 files changed, 16 insertions(+), 8 deletions(-)
>>
>> diff --git a/run_tests.sh b/run_tests.sh
>> index 7e0237f3aa11..2a0082163423 100755
>> --- a/run_tests.sh
>> +++ b/run_tests.sh
>> @@ -25,6 +25,7 @@ specify the appropriate qemu binary for ARCH-run.
>>  EOF
>>  }
>>  
>> +RUNTIME_log_stdout="/dev/null"
>>  RUNTIME_arch_run="./$TEST_DIR/run"
>>  source scripts/runtime.bash
>>  
>> @@ -47,12 +48,11 @@ while getopts "g:hv" opt; do
>>  done
>>  
>>  if [ "$PRETTY_PRINT_STACKS" = "yes" ]; then
>> -	log_redir="> >(./scripts/pretty_print_stacks.py \$kernel >> test.log)"
>> +	RUNTIME_log_stdout='>(./scripts/pretty_print_stacks.py $kernel >> test.log)'
>>  else
>> -	log_redir=">> test.log"
>> +	RUNTIME_log_stdout='test.log'
>>  fi
>>  
>> -RUNTIME_arch_run="./$TEST_DIR/run $log_redir"
>>  config=$TEST_DIR/unittests.cfg
>>  rm -f test.log
>>  printf "BUILD_HEAD=$(cat build-head)\n\n" > test.log
>> diff --git a/scripts/mkstandalone.sh b/scripts/mkstandalone.sh
>> index ef15bc88a22a..ee01fe0c7777 100755
>> --- a/scripts/mkstandalone.sh
>> +++ b/scripts/mkstandalone.sh
>> @@ -68,6 +68,9 @@ generate_test ()
>>  	(echo "#!/bin/bash"
>>  	 cat scripts/arch-run.bash "$TEST_DIR/run") | temp_file RUNTIME_arch_run
>>  
>> +	echo "exec {stdout}>&1"
>> +	echo "RUNTIME_log_stdout='>(cat >&\$stdout)'"
>> +
>>  	cat scripts/runtime.bash
>>  
>>  	echo "run ${args[@]}"
>> diff --git a/scripts/runtime.bash b/scripts/runtime.bash
>> index 59f0df080988..fc4be91d8727 100644
>> --- a/scripts/runtime.bash
>> +++ b/scripts/runtime.bash
>> @@ -6,6 +6,11 @@ PASS() { echo -ne "\e[32mPASS\e[0m"; }
>>  SKIP() { echo -ne "\e[33mSKIP\e[0m"; }
>>  FAIL() { echo -ne "\e[31mFAIL\e[0m"; }
>>  
>> +extract_summary()
>> +{
>> +    tail -1 | grep '^SUMMARY: ' | sed 's/^SUMMARY: /(/;s/$/)/'
>> +}
>> +
>>  function run()
>>  {
>>      local testname="$1"
>> @@ -55,18 +60,18 @@ function run()
>>      fi
>>  
>>      # extra_params in the config file may contain backticks that need to be
>> -    # expanded, so use eval to start qemu
>> -    eval $cmdline
>> +    # expanded, so use eval to start qemu.  Same for $RUNTIME_log_stdout.
>> +    summary=$(eval $cmdline > >(eval "tee -a $RUNTIME_log_stdout" | extract_summary))
> 
> The depth of our stdout resolution is getting insane. Oh well, let's see
> how deep we can go before we throw our hands up and just rewrite all these
> bash scripts in python.

Why not just use a pipe here?

eval $cmdline 2>> $RUNTIME_log_stderr \
              | eval tee -a "$RUNTIME_log_stdout" | extract_summary

Anything I am missing?

Paolo

>>      ret=$?
>>  
>>      if [ $ret -eq 0 ]; then
>> -        echo "`PASS` $1"
>> +        echo "`PASS` $1 $summary"
>>      elif [ $ret -eq 77 ]; then
>> -        echo "`SKIP` $1"
>> +        echo "`SKIP` $1 $summary"
>>      elif [ $ret -eq 124 ]; then
>>          echo "`FAIL` $1 (timeout; duration=$timeout)"
>>      else
>> -        echo "`FAIL` $1"
>> +        echo "`FAIL` $1 $summary"
>>      fi
>>  
>>      return $ret
>> -- 
>> 2.8.1
>>
> 
> Reviewed-by: Andrew Jones <drjones@redhat.com>
> 

  reply	other threads:[~2016-05-10 11:45 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-15 20:52 [PATCH kvm-unit-tests v3 0/9] Improve the output of test runners Radim Krčmář
2016-04-15 20:52 ` [PATCH v3 1/9] lib/report: allow test skipping Radim Krčmář
2016-04-19  6:26   ` Andrew Jones
2016-04-15 20:52 ` [PATCH v3 2/9] x86/*: report skipped tests Radim Krčmář
2016-04-19  6:34   ` Andrew Jones
2016-04-19 11:51     ` Radim Krčmář
2016-04-15 20:52 ` [PATCH v3 3/9] x86/unittests: remove svm-disabled Radim Krčmář
2016-04-15 20:52 ` [PATCH v3 4/9] x86/pmu: expect failure with nmi_watchdog Radim Krčmář
2016-04-19  6:44   ` Andrew Jones
2016-04-19 11:57     ` Radim Krčmář
2016-04-19 13:46       ` Andrew Jones
2016-04-15 20:52 ` [PATCH v3 5/9] lib/report: don't print 0 failed tests Radim Krčmář
2016-04-19  6:45   ` Andrew Jones
2016-04-15 20:52 ` [PATCH v3 6/9] scripts/runtime: skip tests that cannot run Radim Krčmář
2016-04-19  7:01   ` Andrew Jones
2016-04-19 12:01     ` Radim Krčmář
2016-04-15 20:52 ` [PATCH v3 7/9] scripts/runtime: consolidate summary tags Radim Krčmář
2016-04-19  7:04   ` Andrew Jones
2016-04-15 20:52 ` [PATCH v3 8/9] run_tests: print summary Radim Krčmář
2016-04-19  7:19   ` Andrew Jones
2016-05-10 11:45     ` Paolo Bonzini [this message]
2016-05-10 12:41       ` Radim Krčmář
2016-05-10 14:32         ` Paolo Bonzini
2016-05-10 15:31           ` Radim Krčmář
2016-05-10 15:46             ` Paolo Bonzini
2016-05-10 16:17               ` Radim Krčmář
2016-04-15 20:52 ` [PATCH v3 9/9] run_tests: log stderr Radim Krčmář
2016-04-19  7:26   ` Andrew Jones
2016-04-19 12:13     ` Radim Krčmář
2016-05-10 11:41   ` Paolo Bonzini
2016-05-10 12:47     ` Radim Krčmář
2016-04-19  7:31 ` [PATCH kvm-unit-tests v3 0/9] Improve the output of test runners Andrew Jones
2016-04-19 12:14   ` Radim Krčmář

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=5731C9F1.80003@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=drjones@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=rkrcmar@redhat.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;
as well as URLs for NNTP newsgroup(s).