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

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

 



On Wed, Nov 16, 2016 at 09:47:29PM +0100, Radim Krčmář wrote:
> 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?

stderr works for me. Thanks for the fixups

drew

> 
> >  	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
--
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