On Mon, 11/09 23:39, Max Reitz wrote: > Redirecting qemu's stderr to stdout makes working with the stderr output > difficult due to the other file descriptor magic performed in > _launch_qemu ("ambiguous redirect"). > > Add an option which specifies whether stderr should be redirected to > stdout or not (allowing for other modes to be added in the future). > > Signed-off-by: Max Reitz <mre...@redhat.com> > Reviewed-by: Kevin Wolf <kw...@redhat.com> > --- > tests/qemu-iotests/common.qemu | 15 +++++++++++++-- > 1 file changed, 13 insertions(+), 2 deletions(-) > > diff --git a/tests/qemu-iotests/common.qemu b/tests/qemu-iotests/common.qemu > index 8bf3969..2548a87 100644 > --- a/tests/qemu-iotests/common.qemu > +++ b/tests/qemu-iotests/common.qemu > @@ -129,6 +129,8 @@ function _send_qemu_cmd() > # $qemu_comm_method: set this variable to 'monitor' (case insensitive) > # to use the QEMU HMP monitor for communication. > # Otherwise, the default of QMP is used. > +# $keep_stderr: Set this variable to 'y' to keep QEMU's stderr output on > stderr. > +# If this variable is empty, stderr will be redirected to > stdout. > # Returns: > # $QEMU_HANDLE: set to a handle value to communicate with this QEMU instance. > # > @@ -151,11 +153,20 @@ function _launch_qemu() > mkfifo "${fifo_out}" > mkfifo "${fifo_in}" > > - QEMU_NEED_PID='y'\ > - ${QEMU} -nographic -serial none ${comm} -machine accel=qtest "${@}" \ > + if [ -z "$keep_stderr" ]; then > + QEMU_NEED_PID='y'\ > + ${QEMU} -nographic -serial none ${comm} -machine accel=qtest "${@}" \ > > >"${fifo_out}" \ > 2>&1 \ > > <"${fifo_in}" & > + elif [ "$keep_stderr" = "y" ]; then > + QEMU_NEED_PID='y'\ > + ${QEMU} -nographic -serial none ${comm} -machine accel=qtest "${@}" \ > + > >"${fifo_out}" \ > + > <"${fifo_in}" & > + else > + exit 1 > + fi > > if [[ "${BASH_VERSINFO[0]}" -ge "5" || > ("${BASH_VERSINFO[0]}" -ge "4" && "${BASH_VERSINFO[1]}" -ge "1") ]] > -- > 2.6.2 > >
Reviewed-by: Fam Zheng <f...@redhat.com>