On 11/4/19 6:36 PM, Alex Bennée wrote:
> From: Gerd Hoffmann <kraxel@redhat.com>
>
> Helper function to read all console output.
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> Message-Id: <20191031085306.28888-3-kraxel@redhat.com>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
> tests/vm/basevm.py | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
> index 2929de23aa7..086bfb2c66d 100755
> --- a/tests/vm/basevm.py
> +++ b/tests/vm/basevm.py
> @@ -242,6 +242,25 @@ class BaseVM(object):
> return False
> return True
>
> + def console_consume(self):
> + vm = self._guest
> + output = ""
> + vm.console_socket.setblocking(0)
> + while True:
> + try:
> + chars = vm.console_socket.recv(1)
> + except:
> + break
> + output += chars.decode("latin1")
> + if "\r" in output or "\n" in output:
> + lines = re.split("[\r\n]", output)
> + output = lines.pop()
> + if self.debug:
> + self.console_log("\n".join(lines))
> + if self.debug:
> + self.console_log(output)
> + vm.console_socket.setblocking(1)
> +
> def console_send(self, command):
> vm = self._guest
> if self.debug:
>