summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorGraham Christensen <graham@grahamc.com>2017-06-21 17:26:18 -0400
committerGitHub <noreply@github.com>2017-06-21 17:26:18 -0400
commitdd265313e7b178b42ba29ed99e3ae009f413414d (patch)
treea9f397e74746f29af4b21237026d58cef85b0318 /nixos
parentbc47794ab580a28d9c995e4b0f01ef4bee77af28 (diff)
parent3f40fcabbf692ac08cee390ac9b56650ca075630 (diff)
downloadnixlib-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.pm23
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/;
             }