diff options
Diffstat (limited to 'nixos/lib/test-driver/Machine.pm')
-rw-r--r-- | nixos/lib/test-driver/Machine.pm | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/nixos/lib/test-driver/Machine.pm b/nixos/lib/test-driver/Machine.pm index 1a243918c22f..274b16164db3 100644 --- a/nixos/lib/test-driver/Machine.pm +++ b/nixos/lib/test-driver/Machine.pm @@ -504,6 +504,31 @@ sub screenshot { }, { image => $name } ); } +# Get the text of TTY<n> +sub getTTYText { + my ($self, $tty) = @_; + + my ($status, $out) = $self->execute("fold -w 80 /dev/vcs${tty}"); + return $out; +} + +# Wait until TTY<n>'s text matches a particular regular expression +sub waitUntilTTYMatches { + my ($self, $tty, $regexp) = @_; + + $self->nest("waiting for $regexp to appear on tty $tty", sub { + retry sub { + return 1 if $self->getTTYText($tty) =~ /$regexp/; + } + }); +} + +# Debugging: Dump the contents of the TTY<n> +sub dumpTTYContents { + my ($self, $tty) = @_; + + $self->execute("fold -w 80 /dev/vcs${tty} | systemd-cat"); +} # Take a screenshot and return the result as text using optical character # recognition. |