aboutsummaryrefslogtreecommitdiff
path: root/tests/flakes.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/flakes.sh')
-rw-r--r--tests/flakes.sh56
1 files changed, 30 insertions, 26 deletions
diff --git a/tests/flakes.sh b/tests/flakes.sh
index 26cdf27b7..57d1b9aad 100644
--- a/tests/flakes.sh
+++ b/tests/flakes.sh
@@ -5,11 +5,6 @@ if [[ -z $(type -p git) ]]; then
exit 99
fi
-if [[ -z $(type -p hg) ]]; then
- echo "Mercurial not installed; skipping flake tests"
- exit 99
-fi
-
clearStore
rm -rf $TEST_HOME/.cache $TEST_HOME/.config
@@ -266,6 +261,8 @@ cat > $flake3Dir/flake.nix <<EOF
mkDerivation {
inherit system;
name = "fnord";
+ dummy = builtins.readFile (builtins.path { name = "source"; path = ./.; filter = path: type: baseNameOf path == "config.nix"; } + "/config.nix");
+ dummy2 = builtins.readFile (builtins.path { name = "source"; path = inputs.flake1; filter = path: type: baseNameOf path == "simple.nix"; } + "/simple.nix");
buildCommand = ''
cat \${inputs.nonFlake}/README.md > \$out
'';
@@ -579,45 +576,52 @@ nix build -o $TEST_ROOT/result git+file://$flakeGitBare
# Test Mercurial flakes.
rm -rf $flake5Dir
-hg init $flake5Dir
+mkdir $flake5Dir
cat > $flake5Dir/flake.nix <<EOF
{
outputs = { self, flake1 }: {
defaultPackage.$system = flake1.defaultPackage.$system;
-
expr = assert builtins.pathExists ./flake.lock; 123;
};
}
EOF
-hg add $flake5Dir/flake.nix
-hg commit --config ui.username=foobar@example.org $flake5Dir -m 'Initial commit'
+if [[ -n $(type -p hg) ]]; then
+ hg init $flake5Dir
-nix build -o $TEST_ROOT/result hg+file://$flake5Dir
-[[ -e $TEST_ROOT/result/hello ]]
+ hg add $flake5Dir/flake.nix
+ hg commit --config ui.username=foobar@example.org $flake5Dir -m 'Initial commit'
+
+ nix build -o $TEST_ROOT/result hg+file://$flake5Dir
+ [[ -e $TEST_ROOT/result/hello ]]
-(! nix flake metadata --json hg+file://$flake5Dir | jq -e -r .revision)
+ (! nix flake metadata --json hg+file://$flake5Dir | jq -e -r .revision)
-nix eval hg+file://$flake5Dir#expr
+ nix eval hg+file://$flake5Dir#expr
-nix eval hg+file://$flake5Dir#expr
+ nix eval hg+file://$flake5Dir#expr
-(! nix eval hg+file://$flake5Dir#expr --no-allow-dirty)
+ (! nix eval hg+file://$flake5Dir#expr --no-allow-dirty)
-(! nix flake metadata --json hg+file://$flake5Dir | jq -e -r .revision)
+ (! nix flake metadata --json hg+file://$flake5Dir | jq -e -r .revision)
-hg commit --config ui.username=foobar@example.org $flake5Dir -m 'Add lock file'
+ hg commit --config ui.username=foobar@example.org $flake5Dir -m 'Add lock file'
-nix flake metadata --json hg+file://$flake5Dir --refresh | jq -e -r .revision
-nix flake metadata --json hg+file://$flake5Dir
-[[ $(nix flake metadata --json hg+file://$flake5Dir | jq -e -r .revCount) = 1 ]]
+ nix flake metadata --json hg+file://$flake5Dir --refresh | jq -e -r .revision
+ nix flake metadata --json hg+file://$flake5Dir
+ [[ $(nix flake metadata --json hg+file://$flake5Dir | jq -e -r .revCount) = 1 ]]
+
+ nix build -o $TEST_ROOT/result hg+file://$flake5Dir --no-registries --no-allow-dirty
+ nix build -o $TEST_ROOT/result hg+file://$flake5Dir --no-use-registries --no-allow-dirty
+fi
-nix build -o $TEST_ROOT/result hg+file://$flake5Dir --no-registries --no-allow-dirty
-nix build -o $TEST_ROOT/result hg+file://$flake5Dir --no-use-registries --no-allow-dirty
+# Test path flakes.
+rm -rf $flake5Dir/.hg $flake5Dir/flake.lock
+nix flake lock path://$flake5Dir
-# Test tarball flakes
-tar cfz $TEST_ROOT/flake.tar.gz -C $TEST_ROOT --exclude .hg flake5
+# Test tarball flakes.
+tar cfz $TEST_ROOT/flake.tar.gz -C $TEST_ROOT flake5
nix build -o $TEST_ROOT/result file://$TEST_ROOT/flake.tar.gz
@@ -632,8 +636,8 @@ nix build -o $TEST_ROOT/result "file://$TEST_ROOT/flake.tar.gz?narHash=sha256-qQ
# Test --override-input.
git -C $flake3Dir reset --hard
-nix flake lock $flake3Dir --override-input flake2/flake1 flake5 -vvvvv
-[[ $(jq .nodes.flake1_2.locked.url $flake3Dir/flake.lock) =~ flake5 ]]
+nix flake lock $flake3Dir --override-input flake2/flake1 file://$TEST_ROOT/flake.tar.gz -vvvvv
+[[ $(jq .nodes.flake1_2.locked.url $flake3Dir/flake.lock) =~ flake.tar.gz ]]
nix flake lock $flake3Dir --override-input flake2/flake1 flake1
[[ $(jq -r .nodes.flake1_2.locked.rev $flake3Dir/flake.lock) =~ $hash2 ]]