From 008f9f0cd419bd66e922239e2319fd2b1f347ad8 Mon Sep 17 00:00:00 2001 From: K900 Date: Sat, 8 Jul 2023 20:21:50 +0300 Subject: [PATCH] nixos/test-driver: actually use the backdoor message to wait for backdoor New EDK2 sets up the backdoor port as a serial console, which feeds the test driver a bunch of boot logs it can safely ignore. Do so by waiting for the message the backdoor shell prints before doing anything else. --- nixos/lib/test-driver/test_driver/machine.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/nixos/lib/test-driver/test_driver/machine.py b/nixos/lib/test-driver/test_driver/machine.py index 7ef0ae89910b..c315f9b2f57f 100644 --- a/nixos/lib/test-driver/test_driver/machine.py +++ b/nixos/lib/test-driver/test_driver/machine.py @@ -752,7 +752,13 @@ class Machine: while not shell_ready(timeout_secs=30): self.log("Guest root shell did not produce any data yet...") - self.log(self.shell.recv(1024).decode()) + while True: + chunk = self.shell.recv(1024) + self.log(f"Guest shell says: {chunk!r}") + # NOTE: for this to work, nothing must be printed after this line! + if b"Spawning backdoor root shell..." in chunk: + break + toc = time.time() self.log("connected to guest root shell")