about summary refs log tree commit diff
path: root/nixpkgs/nixos/tests/drawterm.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/tests/drawterm.nix')
-rw-r--r--nixpkgs/nixos/tests/drawterm.nix15
1 files changed, 14 insertions, 1 deletions
diff --git a/nixpkgs/nixos/tests/drawterm.nix b/nixpkgs/nixos/tests/drawterm.nix
index 1d444bb55433..3594343853c0 100644
--- a/nixpkgs/nixos/tests/drawterm.nix
+++ b/nixpkgs/nixos/tests/drawterm.nix
@@ -38,11 +38,24 @@ let
         def drawterm_running():
             machine.succeed("pgrep drawterm")
 
+        # cage is a bit wonky here.
+        # it seems to lag behind drawing
+        # and somehow needs a single input character
+        # in order to get the first prompt to show up.
+        # This is not present in any other compositor
+        # as far as I know, and after spending a couple
+        # hours with the upstream source trying to deduce
+        # how to perhaps fix it, I figured just polling is OK.
+        @polling_condition
+        def cpu_shown_up():
+            machine.send_chars(".")
+            machine.wait_for_text("cpu", 1)
+
         start_all()
 
         machine.wait_for_unit("graphical.target")
         drawterm_running.wait() # type: ignore[union-attr]
-        machine.wait_for_text("cpu")
+        cpu_shown_up.wait() # type: ignore[union-attr]
         machine.send_chars("cpu\n")
         machine.wait_for_text("auth")
         machine.send_chars("cpu\n")