Re: [PATCH v3 8/9] run_tests: print summary

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

 




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@xxxxxxxxxx>
>> ---
>>  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@xxxxxxxxxx>
> 
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux