Skip to content

Commit e213fd6

Browse files
authored
Merge pull request #14352 from NixOS/source-paths-tests
tests/functional: Add source-paths tests
2 parents ecaf947 + 1cd8458 commit e213fd6

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

tests/functional/flakes/source-paths.sh

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ cat > "$repo/flake.nix" <<EOF
1212
{
1313
outputs = { ... }: {
1414
x = 1;
15+
y = assert false; 1;
16+
z = builtins.readFile ./foo;
17+
a = import ./foo;
18+
b = import ./dir;
1519
};
1620
}
1721
EOF
@@ -21,3 +25,33 @@ expectStderr 1 nix eval "$repo#x" | grepQuiet "error: Path 'flake.nix' in the re
2125
git -C "$repo" add flake.nix
2226

2327
[[ $(nix eval "$repo#x") = 1 ]]
28+
29+
expectStderr 1 nix eval "$repo#y" | grepQuiet "at $repo/flake.nix:"
30+
31+
git -C "$repo" commit -a -m foo
32+
33+
expectStderr 1 nix eval "git+file://$repo?ref=master#y" | grepQuiet "at «git+file://$repo?ref=master&rev=.*»/flake.nix:"
34+
35+
expectStderr 1 nix eval "$repo#z" | grepQuiet "error: Path 'foo' does not exist in Git repository \"$repo\"."
36+
expectStderr 1 nix eval "git+file://$repo?ref=master#z" | grepQuiet "error: '«git+file://$repo?ref=master&rev=.*»/foo' does not exist"
37+
expectStderr 1 nix eval "$repo#a" | grepQuiet "error: Path 'foo' does not exist in Git repository \"$repo\"."
38+
39+
echo 123 > "$repo/foo"
40+
41+
expectStderr 1 nix eval "$repo#z" | grepQuiet "error: Path 'foo' in the repository \"$repo\" is not tracked by Git."
42+
expectStderr 1 nix eval "$repo#a" | grepQuiet "error: Path 'foo' in the repository \"$repo\" is not tracked by Git."
43+
44+
git -C "$repo" add "$repo/foo"
45+
46+
[[ $(nix eval --raw "$repo#z") = 123 ]]
47+
48+
expectStderr 1 nix eval "$repo#b" | grepQuiet "error: Path 'dir' does not exist in Git repository \"$repo\"."
49+
50+
mkdir -p "$repo/dir"
51+
echo 456 > "$repo/dir/default.nix"
52+
53+
expectStderr 1 nix eval "$repo#b" | grepQuiet "error: Path 'dir' in the repository \"$repo\" is not tracked by Git."
54+
55+
git -C "$repo" add "$repo/dir/default.nix"
56+
57+
[[ $(nix eval "$repo#b") = 456 ]]

0 commit comments

Comments
 (0)