Commit e664c5f7 authored by Ricardo Martincoski's avatar Ricardo Martincoski Committed by Thomas Petazzoni
Browse files

support/testing: let pexpect write stdout to log

When the parameter logfile is passed to spawn(), pexpect sends both
stdin and stdout to the logfile and it creates a double echo effect.

One way to avoid the double echo in the logfile would be to disable the
echo on the terminal just after login ("stty -echo"), but double echo of
user and password would remain.

Instead of that, send only the stdout to the logfile using the
logfile_read property.
Signed-off-by: default avatarRicardo Martincoski <>
Signed-off-by: default avatarThomas Petazzoni <>
parent 8ebc2278
......@@ -67,6 +67,8 @@ class Emulator(object):
self.logfile.write("> starting qemu with '%s'\n" % " ".join(qemu_cmd))
self.qemu = pexpect.spawn(qemu_cmd[0], qemu_cmd[1:])
# We want only stdout into the log to avoid double echo
self.qemu.logfile_read = self.logfile
def __read_until(self, waitstr, timeout=5):
index = self.qemu.expect([waitstr, pexpect.TIMEOUT], timeout=timeout)
......@@ -74,7 +76,6 @@ class Emulator(object):
if index == 0:
data += self.qemu.after
self.log += data
# Remove double carriage return from qemu stdout so str.splitlines()
# works as expected.
return data.replace("\r\r", "\r")
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment