Make Mercurial optional for the flakes tests
This commit is contained in:
parent
0dc8172458
commit
faeab0d5d5
2 changed files with 29 additions and 27 deletions
|
@ -78,7 +78,7 @@
|
||||||
|
|
||||||
# Tests
|
# Tests
|
||||||
buildPackages.git
|
buildPackages.git
|
||||||
buildPackages.mercurial
|
buildPackages.mercurial # FIXME: remove? only needed for tests
|
||||||
buildPackages.jq
|
buildPackages.jq
|
||||||
]
|
]
|
||||||
++ lib.optionals stdenv.hostPlatform.isLinux [(buildPackages.util-linuxMinimal or buildPackages.utillinuxMinimal)];
|
++ lib.optionals stdenv.hostPlatform.isLinux [(buildPackages.util-linuxMinimal or buildPackages.utillinuxMinimal)];
|
||||||
|
|
|
@ -5,11 +5,6 @@ if [[ -z $(type -p git) ]]; then
|
||||||
exit 99
|
exit 99
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z $(type -p hg) ]]; then
|
|
||||||
echo "Mercurial not installed; skipping flake tests"
|
|
||||||
exit 99
|
|
||||||
fi
|
|
||||||
|
|
||||||
clearStore
|
clearStore
|
||||||
rm -rf $TEST_HOME/.cache $TEST_HOME/.config
|
rm -rf $TEST_HOME/.cache $TEST_HOME/.config
|
||||||
|
|
||||||
|
@ -579,45 +574,52 @@ nix build -o $TEST_ROOT/result git+file://$flakeGitBare
|
||||||
|
|
||||||
# Test Mercurial flakes.
|
# Test Mercurial flakes.
|
||||||
rm -rf $flake5Dir
|
rm -rf $flake5Dir
|
||||||
hg init $flake5Dir
|
mkdir $flake5Dir
|
||||||
|
|
||||||
cat > $flake5Dir/flake.nix <<EOF
|
cat > $flake5Dir/flake.nix <<EOF
|
||||||
{
|
{
|
||||||
outputs = { self, flake1 }: {
|
outputs = { self, flake1 }: {
|
||||||
defaultPackage.$system = flake1.defaultPackage.$system;
|
defaultPackage.$system = flake1.defaultPackage.$system;
|
||||||
|
|
||||||
expr = assert builtins.pathExists ./flake.lock; 123;
|
expr = assert builtins.pathExists ./flake.lock; 123;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
hg add $flake5Dir/flake.nix
|
if [[ -n $(type -p hg) ]]; then
|
||||||
hg commit --config ui.username=foobar@example.org $flake5Dir -m 'Initial commit'
|
hg init $flake5Dir
|
||||||
|
|
||||||
nix build -o $TEST_ROOT/result hg+file://$flake5Dir
|
hg add $flake5Dir/flake.nix
|
||||||
[[ -e $TEST_ROOT/result/hello ]]
|
hg commit --config ui.username=foobar@example.org $flake5Dir -m 'Initial commit'
|
||||||
|
|
||||||
(! nix flake metadata --json hg+file://$flake5Dir | jq -e -r .revision)
|
nix build -o $TEST_ROOT/result hg+file://$flake5Dir
|
||||||
|
[[ -e $TEST_ROOT/result/hello ]]
|
||||||
|
|
||||||
nix eval hg+file://$flake5Dir#expr
|
(! 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 --no-allow-dirty)
|
nix eval hg+file://$flake5Dir#expr
|
||||||
|
|
||||||
(! nix flake metadata --json hg+file://$flake5Dir | jq -e -r .revision)
|
(! nix eval hg+file://$flake5Dir#expr --no-allow-dirty)
|
||||||
|
|
||||||
hg commit --config ui.username=foobar@example.org $flake5Dir -m 'Add lock file'
|
(! nix flake metadata --json hg+file://$flake5Dir | jq -e -r .revision)
|
||||||
|
|
||||||
nix flake metadata --json hg+file://$flake5Dir --refresh | jq -e -r .revision
|
hg commit --config ui.username=foobar@example.org $flake5Dir -m 'Add lock file'
|
||||||
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 flake metadata --json hg+file://$flake5Dir --refresh | jq -e -r .revision
|
||||||
nix build -o $TEST_ROOT/result hg+file://$flake5Dir --no-use-registries --no-allow-dirty
|
nix flake metadata --json hg+file://$flake5Dir
|
||||||
|
[[ $(nix flake metadata --json hg+file://$flake5Dir | jq -e -r .revCount) = 1 ]]
|
||||||
|
|
||||||
# Test tarball flakes
|
nix build -o $TEST_ROOT/result hg+file://$flake5Dir --no-registries --no-allow-dirty
|
||||||
tar cfz $TEST_ROOT/flake.tar.gz -C $TEST_ROOT --exclude .hg flake5
|
nix build -o $TEST_ROOT/result hg+file://$flake5Dir --no-use-registries --no-allow-dirty
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 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 flake5
|
||||||
|
|
||||||
nix build -o $TEST_ROOT/result file://$TEST_ROOT/flake.tar.gz
|
nix build -o $TEST_ROOT/result file://$TEST_ROOT/flake.tar.gz
|
||||||
|
|
||||||
|
@ -632,8 +634,8 @@ nix build -o $TEST_ROOT/result "file://$TEST_ROOT/flake.tar.gz?narHash=sha256-qQ
|
||||||
|
|
||||||
# Test --override-input.
|
# Test --override-input.
|
||||||
git -C $flake3Dir reset --hard
|
git -C $flake3Dir reset --hard
|
||||||
nix flake lock $flake3Dir --override-input flake2/flake1 flake5 -vvvvv
|
nix flake lock $flake3Dir --override-input flake2/flake1 file://$TEST_ROOT/flake.tar.gz -vvvvv
|
||||||
[[ $(jq .nodes.flake1_2.locked.url $flake3Dir/flake.lock) =~ flake5 ]]
|
[[ $(jq .nodes.flake1_2.locked.url $flake3Dir/flake.lock) =~ flake.tar.gz ]]
|
||||||
|
|
||||||
nix flake lock $flake3Dir --override-input flake2/flake1 flake1
|
nix flake lock $flake3Dir --override-input flake2/flake1 flake1
|
||||||
[[ $(jq -r .nodes.flake1_2.locked.rev $flake3Dir/flake.lock) =~ $hash2 ]]
|
[[ $(jq -r .nodes.flake1_2.locked.rev $flake3Dir/flake.lock) =~ $hash2 ]]
|
||||||
|
|
Loading…
Reference in a new issue