aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorregnat <rg@regnat.ovh>2020-12-09 10:37:39 +0100
committerregnat <rg@regnat.ovh>2020-12-09 10:45:12 +0100
commitee7c94fa1b74b43f7a719373f5f566d09b147126 (patch)
treea73764fffd7c47c11506bd2089958754c1a09b3d
parent6758e65612b990805d3d7d2039cd92647730e900 (diff)
Test the post-build-hook with remote builders
Regression test for #4245
-rw-r--r--tests/build-remote-input-addressed.sh28
-rw-r--r--tests/build-remote.sh3
2 files changed, 31 insertions, 0 deletions
diff --git a/tests/build-remote-input-addressed.sh b/tests/build-remote-input-addressed.sh
index b34caa061..49d15c389 100644
--- a/tests/build-remote-input-addressed.sh
+++ b/tests/build-remote-input-addressed.sh
@@ -3,3 +3,31 @@ source common.sh
file=build-hook.nix
source build-remote.sh
+
+# Add a `post-build-hook` option to the nix conf.
+# This hook will be executed both for the local machine and the remote builders
+# (because they share the same config).
+registerBuildHook () {
+ # Dummy post-build-hook just to ensure that it's executed correctly.
+ # (we can't reuse the one from `$PWD/push-to-store.sh` because of
+ # https://github.com/NixOS/nix/issues/4341)
+ cat <<EOF > $TEST_ROOT/post-build-hook.sh
+#!/bin/sh
+
+echo "Post hook ran successfully"
+# Add an empty line to a counter file, just to check that this hook ran properly
+echo "" >> $TEST_ROOT/post-hook-counter
+EOF
+ chmod +x $TEST_ROOT/post-build-hook.sh
+ rm -f $TEST_ROOT/post-hook-counter
+
+ echo "post-build-hook = $TEST_ROOT/post-build-hook.sh" >> $NIX_CONF_DIR/nix.conf
+}
+
+registerBuildHook
+source build-remote.sh
+
+# `build-hook.nix` has four derivations to build, and the hook runs twice for
+# each derivation (once on the builder and once on the host), so the counter
+# should contain eight lines now
+[[ $(cat $TEST_ROOT/post-hook-counter | wc -l) -eq 8 ]]
diff --git a/tests/build-remote.sh b/tests/build-remote.sh
index ca6d1de09..04848e4b5 100644
--- a/tests/build-remote.sh
+++ b/tests/build-remote.sh
@@ -14,6 +14,9 @@ builders=(
"ssh-ng://localhost?remote-store=$TEST_ROOT/machine3?system-features=baz - - 1 1 baz"
)
+chmod -R +w $TEST_ROOT/machine* || true
+rm -rf $TEST_ROOT/machine* || true
+
# Note: ssh://localhost bypasses ssh, directly invoking nix-store as a
# child process. This allows us to test LegacySSHStore::buildDerivation().
# ssh-ng://... likewise allows us to test RemoteStore::buildDerivation().