aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2017-11-11 01:51:34 +0300
committerNikolay Amiantov <ab@fmap.me>2022-01-09 13:42:36 +0300
commit120ca245d13708743a59e83da12ec90902636236 (patch)
tree6c27cb21423959e3018932aa5fa6e0e228a292fa /tests
parentc66865dff1747ecd55915ef8c549dc1a088ff168 (diff)
Add test for readFile keeping context
Diffstat (limited to 'tests')
-rw-r--r--tests/local.mk3
-rw-r--r--tests/readfile-context.builder.sh1
-rw-r--r--tests/readfile-context.nix19
-rw-r--r--tests/readfile-context.sh16
4 files changed, 38 insertions, 1 deletions
diff --git a/tests/local.mk b/tests/local.mk
index c22e779a6..d2a46f22b 100644
--- a/tests/local.mk
+++ b/tests/local.mk
@@ -59,7 +59,8 @@ nix_tests = \
ca/recursive.sh \
ca/concurrent-builds.sh \
ca/nix-copy.sh \
- eval-store.sh
+ eval-store.sh \
+ readfile-context.sh
# parallel.sh
ifeq ($(HAVE_LIBCPUID), 1)
diff --git a/tests/readfile-context.builder.sh b/tests/readfile-context.builder.sh
new file mode 100644
index 000000000..7084a08cb
--- /dev/null
+++ b/tests/readfile-context.builder.sh
@@ -0,0 +1 @@
+echo "$input" > $out
diff --git a/tests/readfile-context.nix b/tests/readfile-context.nix
new file mode 100644
index 000000000..600036a94
--- /dev/null
+++ b/tests/readfile-context.nix
@@ -0,0 +1,19 @@
+with import ./config.nix;
+
+let
+
+ input = import ./simple.nix;
+
+ dependent = mkDerivation {
+ name = "dependent";
+ builder = ./readfile-context.builder.sh;
+ input = "${input}/hello";
+ };
+
+ readDependent = mkDerivation {
+ name = "read-dependent";
+ builder = ./readfile-context.builder.sh;
+ input = builtins.readFile dependent;
+ };
+
+in readDependent
diff --git a/tests/readfile-context.sh b/tests/readfile-context.sh
new file mode 100644
index 000000000..31e70ddb1
--- /dev/null
+++ b/tests/readfile-context.sh
@@ -0,0 +1,16 @@
+source common.sh
+
+clearStore
+
+outPath=$(nix-build --no-out-link readfile-context.nix)
+
+# Set a GC root.
+ln -s $outPath "$NIX_STATE_DIR"/gcroots/foo
+
+# Check that file exists.
+[ "$(cat $(cat $outPath))" = "Hello World!" ]
+
+nix-collect-garbage
+
+# Check that file still exists.
+[ "$(cat $(cat $outPath))" = "Hello World!" ]