diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2022-07-13 20:55:08 +0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2022-07-13 20:55:17 +0200 |
commit | 752158a8efb7a027e5020d3c9c03aa5d70002b56 (patch) | |
tree | 09a3db1cead84f556047a33c2303e9082be4634c /tests/flakes/search-root.sh | |
parent | 6ba45f81a8a8fcf404f899b9f6879dd6af7d8ac4 (diff) |
Move flake-searching.sh and make it less dependent on git
Diffstat (limited to 'tests/flakes/search-root.sh')
-rw-r--r-- | tests/flakes/search-root.sh | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/flakes/search-root.sh b/tests/flakes/search-root.sh new file mode 100644 index 000000000..d8586dc8a --- /dev/null +++ b/tests/flakes/search-root.sh @@ -0,0 +1,50 @@ +source common.sh + +clearStore + +writeSimpleFlake $TEST_HOME +cd $TEST_HOME +mkdir -p foo/subdir + +echo '{ outputs = _: {}; }' > foo/flake.nix +cat <<EOF > flake.nix +{ + inputs.foo.url = "$PWD/foo"; + outputs = a: { + packages.$system = rec { + test = import ./simple.nix; + default = test; + }; + }; +} +EOF +mkdir subdir +pushd subdir + +success=("" . .# .#test ../subdir ../subdir#test "$PWD") +failure=("path:$PWD") + +for i in "${success[@]}"; do + nix build $i || fail "flake should be found by searching up directories" +done + +for i in "${failure[@]}"; do + ! nix build $i || fail "flake should not search up directories when using 'path:'" +done + +popd + +nix build --override-input foo . || fail "flake should search up directories when not an installable" + +sed "s,$PWD/foo,$PWD/foo/subdir,g" -i flake.nix +! nix build || fail "flake should not search upwards when part of inputs" + +if [[ -n $(type -p git) ]]; then + pushd subdir + git init + for i in "${success[@]}" "${failure[@]}"; do + ! nix build $i || fail "flake should not search past a git repository" + done + rm -rf .git + popd +fi |