aboutsummaryrefslogtreecommitdiff
path: root/tests/flakes.sh
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2019-06-04 19:10:35 +0200
committerEelco Dolstra <edolstra@gmail.com>2019-06-04 19:17:03 +0200
commit6dbd5c26e6c853f302cd9d3ed171d134ff24ffe1 (patch)
treee5bb9ee635a54a1436547dfea206679df9af1f45 /tests/flakes.sh
parentc7c562416c75ed60e024f84e4ac440e29b98e0e3 (diff)
Make flake input fetching lazy
As long as the flake input is locked, it is now only fetched when it is evaluated (e.g. "nixpkgs" is fetched when "inputs.nixpkgs.<something>" is evaluated). This required adding an "id" attribute to the members of "inputs" in lockfiles, e.g. "inputs": { "nixpkgs/release-19.03": { "id": "nixpkgs", "inputs": {}, "narHash": "sha256-eYtxncIMFVmOHaHBtTdPGcs/AnJqKqA6tHCm0UmPYQU=", "nonFlakeInputs": {}, "uri": "github:edolstra/nixpkgs/e9d5882bb861dc48f8d46960e7c820efdbe8f9c1" } } because the flake ID needs to be known beforehand to construct the "inputs" attrset. Fixes #2913.
Diffstat (limited to 'tests/flakes.sh')
-rw-r--r--tests/flakes.sh11
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/flakes.sh b/tests/flakes.sh
index 998abfd09..29845e5ed 100644
--- a/tests/flakes.sh
+++ b/tests/flakes.sh
@@ -191,6 +191,8 @@ nix build -o $TEST_ROOT/result --flake-registry $registry $flake3Dir:sth
# Check whether it saved the lockfile
[[ ! (-z $(git -C $flake3Dir diff master)) ]]
+git -C $flake3Dir commit -m 'Add lockfile'
+
# Unsupported epochs should be an error.
sed -i $flake3Dir/flake.nix -e s/201906/201909/
nix build -o $TEST_ROOT/result --flake-registry $registry $flake3Dir:sth 2>&1 | grep 'unsupported epoch'
@@ -241,3 +243,12 @@ git -C $flake3Dir commit -m 'Add nonFlakeInputs'
# Check whether `nix build` works with a lockfile which is missing a nonFlakeInputs
nix build -o $TEST_ROOT/result --flake-registry $registry $flake3Dir:sth
+
+# Check whether flake input fetching is lazy: flake3:sth does not
+# depend on flake2, so this shouldn't fail.
+rm -rf $TEST_HOME/.cache
+clearStore
+mv $flake2Dir $flake2Dir.tmp
+nix build -o $TEST_ROOT/result --flake-registry $registry flake3:sth
+(! nix build -o $TEST_ROOT/result --flake-registry $registry flake3:xyzzy)
+mv $flake2Dir.tmp $flake2Dir