aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorregnat <rg@regnat.ovh>2020-11-09 16:04:43 +0100
committerregnat <rg@regnat.ovh>2021-03-01 14:00:17 +0100
commit93b5a59b674c0a29846828c7d14b434cc954f8ee (patch)
treef1d0f1c3e5ac5ec1facc66160bb2f015b7159041 /tests
parentdf9d4f88d5aed0aa4ed67eb012e9f260550b7200 (diff)
Add a test for the remote caching of CA derivations
Diffstat (limited to 'tests')
-rw-r--r--tests/ca/substitute.sh21
-rw-r--r--tests/local.mk3
-rwxr-xr-xtests/push-to-store.sh6
3 files changed, 27 insertions, 3 deletions
diff --git a/tests/ca/substitute.sh b/tests/ca/substitute.sh
new file mode 100644
index 000000000..79a6ef8b1
--- /dev/null
+++ b/tests/ca/substitute.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+
+# Ensure that binary substitution works properly with ca derivations
+
+source common.sh
+
+sed -i 's/experimental-features .*/& ca-derivations ca-references/' "$NIX_CONF_DIR"/nix.conf
+
+export REMOTE_STORE=file://$TEST_ROOT/binary_cache
+
+buildDrvs () {
+ nix build --file ./content-addressed.nix -L --no-link "$@"
+}
+
+# Populate the remote cache
+buildDrvs --post-build-hook ../push-to-store.sh
+
+# Restart the build on an empty store, ensuring that we don't build
+clearStore
+buildDrvs --substitute --substituters $REMOTE_STORE --no-require-sigs -j0
+
diff --git a/tests/local.mk b/tests/local.mk
index 07cfd7a50..e17555051 100644
--- a/tests/local.mk
+++ b/tests/local.mk
@@ -41,7 +41,8 @@ nix_tests = \
build.sh \
compute-levels.sh \
ca/build.sh \
- ca/nix-copy.sh
+ ca/nix-copy.sh \
+ ca/substitute.sh
# parallel.sh
install-tests += $(foreach x, $(nix_tests), tests/$(x))
diff --git a/tests/push-to-store.sh b/tests/push-to-store.sh
index 6aadb916b..25352c751 100755
--- a/tests/push-to-store.sh
+++ b/tests/push-to-store.sh
@@ -1,4 +1,6 @@
#!/bin/sh
-echo Pushing "$@" to "$REMOTE_STORE"
-printf "%s" "$OUT_PATHS" | xargs -d: nix copy --to "$REMOTE_STORE" --no-require-sigs
+set -x
+
+echo Pushing "$OUT_PATHS" to "$REMOTE_STORE"
+printf "%s" "$DRV_PATH" | xargs nix copy --to "$REMOTE_STORE" --no-require-sigs