diff options
author | Graham Christensen <graham@grahamc.com> | 2017-06-21 17:26:18 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-21 17:26:18 -0400 |
commit | dd265313e7b178b42ba29ed99e3ae009f413414d (patch) | |
tree | a9f397e74746f29af4b21237026d58cef85b0318 /nixos | |
parent | bc47794ab580a28d9c995e4b0f01ef4bee77af28 (diff) | |
parent | 3f40fcabbf692ac08cee390ac9b56650ca075630 (diff) | |
download | nixlib-dd265313e7b178b42ba29ed99e3ae009f413414d.tar nixlib-dd265313e7b178b42ba29ed99e3ae009f413414d.tar.gz nixlib-dd265313e7b178b42ba29ed99e3ae009f413414d.tar.bz2 nixlib-dd265313e7b178b42ba29ed99e3ae009f413414d.tar.lz nixlib-dd265313e7b178b42ba29ed99e3ae009f413414d.tar.xz nixlib-dd265313e7b178b42ba29ed99e3ae009f413414d.tar.zst nixlib-dd265313e7b178b42ba29ed99e3ae009f413414d.zip |
Merge pull request #26736 from grahamc/improve-nixos-test-debug
Improve nixos test debug
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/lib/test-driver/Machine.pm | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/nixos/lib/test-driver/Machine.pm b/nixos/lib/test-driver/Machine.pm index 6be119bbf331..cd375352c4ca 100644 --- a/nixos/lib/test-driver/Machine.pm +++ b/nixos/lib/test-driver/Machine.pm @@ -219,8 +219,8 @@ sub waitForMonitorPrompt { sub retry { my ($coderef) = @_; my $n; - for ($n = 0; $n < 900; $n++) { - return if &$coderef; + for ($n = 899; $n >=0; $n--) { + return if &$coderef($n); sleep 1; } die "action timed out after $n seconds"; @@ -518,6 +518,12 @@ sub waitUntilTTYMatches { $self->nest("waiting for $regexp to appear on tty $tty", sub { retry sub { + my ($retries_remaining) = @_; + if ($retries_remaining == 0) { + $self->log("Last chance to match /$regexp/ on TTY$tty, which currently contains:"); + $self->log($self->getTTYText($tty)); + } + return 1 if $self->getTTYText($tty) =~ /$regexp/; } }); @@ -566,6 +572,12 @@ sub waitForText { my ($self, $regexp) = @_; $self->nest("waiting for $regexp to appear on the screen", sub { retry sub { + my ($retries_remaining) = @_; + if ($retries_remaining == 0) { + $self->log("Last chance to match /$regexp/ on the screen, which currently contains:"); + $self->log($self->getScreenText); + } + return 1 if $self->getScreenText =~ /$regexp/; } }); @@ -600,6 +612,13 @@ sub waitForWindow { $self->nest("waiting for a window to appear", sub { retry sub { my @names = $self->getWindowNames; + + my ($retries_remaining) = @_; + if ($retries_remaining == 0) { + $self->log("Last chance to match /$regexp/ on the the window list, which currently contains:"); + $self->log(join(", ", @names)); + } + foreach my $n (@names) { return 1 if $n =~ /$regexp/; } |