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