aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorregnat <rg@regnat.ovh>2020-12-15 09:37:05 +0100
committerregnat <rg@regnat.ovh>2021-02-25 17:19:18 +0100
commitaead35531a0630b19e41348e103b2d105e2d8dd9 (patch)
treee021a97414b7d0269434d770e699a7e1a7c31c76 /tests
parent2e199673a523fa81de31ffdd2a25976ce0814631 (diff)
Add a test for the copy of CA paths
Diffstat (limited to 'tests')
-rw-r--r--tests/local.mk1
-rwxr-xr-xtests/nix-copy-content-addressed.sh34
2 files changed, 35 insertions, 0 deletions
diff --git a/tests/local.mk b/tests/local.mk
index 06be8cec1..a504e397e 100644
--- a/tests/local.mk
+++ b/tests/local.mk
@@ -38,6 +38,7 @@ nix_tests = \
describe-stores.sh \
flakes.sh \
content-addressed.sh \
+ nix-copy-content-addressed.sh \
build.sh \
compute-levels.sh
# parallel.sh
diff --git a/tests/nix-copy-content-addressed.sh b/tests/nix-copy-content-addressed.sh
new file mode 100755
index 000000000..2e0dea2d2
--- /dev/null
+++ b/tests/nix-copy-content-addressed.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+
+source common.sh
+
+# Globally enable the ca derivations experimental flag
+sed -i 's/experimental-features = .*/& ca-derivations ca-references/' "$NIX_CONF_DIR/nix.conf"
+
+export REMOTE_STORE_DIR="$TEST_ROOT/remote_store"
+export REMOTE_STORE="file://$REMOTE_STORE_DIR"
+
+ensureCorrectlyCopied () {
+ attrPath="$1"
+ nix build --store "$REMOTE_STORE" --file ./content-addressed.nix "$attrPath"
+}
+
+testOneCopy () {
+ clearStore
+ rm -rf "$REMOTE_STORE_DIR"
+
+ attrPath="$1"
+ nix copy --to $REMOTE_STORE "$attrPath" --file ./content-addressed.nix
+
+ ensureCorrectlyCopied "$attrPath"
+
+ # Ensure that we can copy back what we put in the store
+ clearStore
+ nix copy --from $REMOTE_STORE \
+ --file ./content-addressed.nix "$attrPath" \
+ --no-check-sigs
+}
+
+for attrPath in rootCA dependentCA transitivelyDependentCA dependentNonCA dependentFixedOutput; do
+ testOneCopy "$attrPath"
+done