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