Re: [kvm-unit-tests PATCH v2] runtime: better handling of QEMU aborts

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

 



2016-11-15 18:26+0100, Andrew Jones:
> Add two changes to run_qemu. The first saves/restores terminal settings.
> This solves an annoying loss of terminal echo when QEMU aborts during
> a test run. The second ensures we see a message about the abort, because
> the "Aborted (core dumped)" message we should see gets eaten. We also
> add a message to run()'s failure cases in its exit code processing to
> handle signals in general.
> 
> Note, the first change is necessary because QEMU modifies the terminal
> settings when using '-serial stdio', but calling abort() invokes exit
> without first calling qemu_chr_free(serial_hds[0]) to restore them.
> 
> (Additionally we fixup the premature failure check to only capture the
>  last line, like it says it's doing.)
> 
> Reported-by: Peter Maydell <peter.maydell@xxxxxxxxxx>
> Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx>
> 
> ---
> v2:
>  - rebase to latest master and add FAIL case to run()'s exit code
>    processing [Radim]
>  - add '>(tail -1) to premature failure check [Radim]
> ---
> diff --git a/scripts/arch-run.bash b/scripts/arch-run.bash
> @@ -26,13 +26,16 @@
>  ##############################################################################
>  run_qemu ()
>  {
> -	local stdout errors ret sig
> +	local stdout errors ret sig tty
>  
>  	# stdout to {stdout}, stderr to $errors and stderr
> +	tty=$(stty -g)
>  	exec {stdout}>&1
>  	errors=$("${@}" 2> >(tee /dev/stderr) > /dev/fd/$stdout)
>  	ret=$?
> +	[ $ret -eq 134 ] && echo "QEMU Aborted" > /dev/fd/$stdout

Standard output is /dev/fd/$stdout here (unlike in parentheses, where it
was $errors).  I can remove the redirection when applying, but
redirecting to stderr would also make sense -- what do you prefer?

>  	exec {stdout}>&-
> +	stty "$tty"
>  
>  	if [ "$errors" ]; then
>  		sig=$(grep 'terminating on signal' <<<"$errors")
--
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