about summary refs log tree commit diff
path: root/tests/remote-builds.nix
diff options
context:
space:
mode:
authoraszlig <aszlig@nix.build>2017-11-25T00·03+0100
committeraszlig <aszlig@nix.build>2017-11-25T00·34+0100
commit6567ab95a0b5cdca3f8b22dbbcd98ec5d18b63b0 (patch)
treef91f5e506c891d118c99a29fed50a2d3eb8b21b6 /tests/remote-builds.nix
parent549c3706a5d63e10d908b43da8479331a844018f (diff)
build-remote: Fix missing log output
The storeUri variable in the build-remote hook is declared very much to
the start of the main function and a bunch of lines later, the same
variable gets checked via hasPrefix() but it gets assigned *after* that
check when the most suitable machine for the build was choosen.

So I guess this was just a typo in d16fd2497374671c92cb877f9570d65783a7
and what we really want is to either checkd the prefix *after* assigning
storeUri or use bestMachine->storeUri directly.

I choose the latter, because the former could introduce even more
regressions if the try block where the variable gets assigned terminates
early.

Nevertheless, the reason why the log output didn't work is because
hasPrefix() checked for "ssh://" in front of storeUri, but if the
storeUri isn't set correctly (or at all), we don't get the log file
descriptor set up properly, leading to no log output.

I've adjusted the remote-builds test to include a regression test for
this, so that we can make sure we get a build output when using remote
builds.

In addition to that I've tested this with two of my build farms and the
build logs are emitted correctly again.

Signed-off-by: aszlig <aszlig@nix.build>
Diffstat (limited to 'tests/remote-builds.nix')
-rw-r--r--tests/remote-builds.nix5
1 files changed, 4 insertions, 1 deletions
diff --git a/tests/remote-builds.nix b/tests/remote-builds.nix
index 39bd090e43e7..58a26d8b6182 100644
--- a/tests/remote-builds.nix
+++ b/tests/remote-builds.nix
@@ -85,7 +85,10 @@ in
       }
 
       # Perform a build and check that it was performed on the slave.
-      my $out = $client->succeed("nix-build ${expr nodes.client.config 1}");
+      my $out = $client->succeed(
+        "nix-build ${expr nodes.client.config 1} 2> build-output",
+        "grep -q Hello build-output"
+      );
       $slave1->succeed("test -e $out");
 
       # And a parallel build.