Merge changes I186b0edb,Ie394691b into main

* changes:
  tests/functional/lang: Don't use tabs for indentation
  tests/functional/lang: Change base path to the lang directory
This commit is contained in:
piegames
2025-05-21 22:17:42 +00:00
committed by Lix Systems Gerrit
61 changed files with 175 additions and 173 deletions
+2 -1
View File
@@ -1,7 +1,8 @@
# Test the function for lang.sh
source common.sh
source lang/framework.sh
cd lang
source framework.sh
# We are testing this, so don't want outside world to affect us.
unset _NIX_TEST_ACCEPT
+32 -31
View File
@@ -4,13 +4,14 @@ source common.sh
set -o pipefail
source lang/framework.sh
cd lang
source framework.sh
# specialize function a bit
function diffAndAccept() {
local -r testName="$1"
local -r got="lang/$testName.$2"
local -r expected="lang/$testName.$3"
local -r got="$testName.$2"
local -r expected="$testName.$3"
diffAndAcceptInner "$testName" "$got" "$expected"
}
@@ -38,15 +39,15 @@ set +x
badDiff=0
badExitCode=0
for i in lang/parse-fail-*.nix; do
for i in parse-fail-*.nix; do
echo "parsing $i (should fail)";
i=$(basename "$i" .nix)
declare -a flags=()
if test -e "lang/$i.flags"; then
read -r -a flags < "lang/$i.flags"
if test -e "$i.flags"; then
read -r -a flags < "$i.flags"
fi
if expectStderr 1 nix-instantiate --parse "${flags[@]}" - < "lang/$i.nix" > "lang/$i.err"
if expectStderr 1 nix-instantiate --parse "${flags[@]}" - < "$i.nix" > "$i.err"
then
diffAndAccept "$i" err err.exp
else
@@ -55,21 +56,21 @@ for i in lang/parse-fail-*.nix; do
fi
done
for i in lang/parse-okay-*.nix; do
for i in parse-okay-*.nix; do
echo "parsing $i (should succeed)";
i=$(basename "$i" .nix)
declare -a flags=()
if test -e "lang/$i.flags"; then
read -r -a flags < "lang/$i.flags"
if test -e "$i.flags"; then
read -r -a flags < "$i.flags"
fi
if
expect 0 nix-instantiate --parse "${flags[@]}" - < "lang/$i.nix" \
1> "lang/$i.out" \
2> "lang/$i.err"
expect 0 nix-instantiate --parse "${flags[@]}" - < "$i.nix" \
1> "$i.out" \
2> "$i.err"
then
sed "s!$(pwd)!/pwd!g" "lang/$i.out" "lang/$i.err"
yq --in-place --yaml-output '.' "lang/$i.out"
sed "s!$(pwd)!/pwd!g" "$i.out" "$i.err"
yq --in-place --yaml-output '.' "$i.out"
diffAndAccept "$i" out exp
diffAndAccept "$i" err err.exp
else
@@ -78,17 +79,17 @@ for i in lang/parse-okay-*.nix; do
fi
done
for i in lang/eval-fail-*.nix; do
for i in eval-fail-*.nix; do
echo "evaluating $i (should fail)";
i=$(basename "$i" .nix)
declare -a flags=()
if test -e "lang/$i.flags"; then
read -r -a flags < "lang/$i.flags"
if test -e "$i.flags"; then
read -r -a flags < "$i.flags"
fi
if
expectStderr 1 nix-instantiate --eval --strict --show-trace "${flags[@]}" "lang/$i.nix" \
| sed "s!$(pwd)!/pwd!g" > "lang/$i.err"
expectStderr 1 nix-instantiate --eval --strict --show-trace "${flags[@]}" "$i.nix" \
| sed "s!$(pwd)!/pwd!g" > "$i.err"
then
diffAndAccept "$i" err err.exp
else
@@ -97,34 +98,34 @@ for i in lang/eval-fail-*.nix; do
fi
done
for i in lang/eval-okay-*.nix; do
for i in eval-okay-*.nix; do
echo "evaluating $i (should succeed)";
i=$(basename "$i" .nix)
declare -a flags=()
if test -e "lang/$i.flags"; then
read -r -a flags < "lang/$i.flags"
if test -e "$i.flags"; then
read -r -a flags < "$i.flags"
fi
if test -e "lang/$i.exp.xml"; then
if test -e "$i.exp.xml"; then
if expect 0 nix-instantiate --eval --xml --no-location --strict "${flags[@]}" \
"lang/$i.nix" > "lang/$i.out.xml"
"$i.nix" > "$i.out.xml"
then
diffAndAccept "$i" out.xml exp.xml
else
echo "FAIL: $i should evaluate"
badExitCode=1
fi
elif test ! -e "lang/$i.exp-disabled"; then
elif test ! -e "$i.exp-disabled"; then
if
expect 0 env \
NIX_PATH=lang/dir3:lang/dir4 \
NIX_PATH=dir3:dir4 \
HOME=/fake-home \
nix-instantiate "${flags[@]}" --eval --strict "lang/$i.nix" \
1> "lang/$i.out" \
2> "lang/$i.err"
nix-instantiate "${flags[@]}" --eval --strict "$i.nix" \
1> "$i.out" \
2> "$i.err"
then
sed -i "s!$(pwd)!/pwd!g" "lang/$i.out" "lang/$i.err"
sed -i "s!$(pwd)!/pwd!g" "$i.out" "$i.err"
diffAndAccept "$i" out exp
diffAndAccept "$i" err err.exp
else
@@ -1,6 +1,6 @@
error:
… while calling the 'abort' builtin
at /pwd/lang/eval-fail-abort.nix:1:14:
at /pwd/eval-fail-abort.nix:1:14:
1| if true then abort "this should fail" else 1
| ^
2|
@@ -1,6 +1,6 @@
error:
… while calling the 'addDrvOutputDependencies' builtin
at /pwd/lang/eval-fail-addDrvOutputDependencies-empty-context.nix:1:1:
at /pwd/eval-fail-addDrvOutputDependencies-empty-context.nix:1:1:
1| builtins.addDrvOutputDependencies ""
| ^
2|
@@ -1,6 +1,6 @@
error:
… while calling the 'addDrvOutputDependencies' builtin
at /pwd/lang/eval-fail-addDrvOutputDependencies-multi-elem-context.nix:18:4:
at /pwd/eval-fail-addDrvOutputDependencies-multi-elem-context.nix:18:4:
17|
18| in builtins.addDrvOutputDependencies combo-path
| ^
@@ -1,6 +1,6 @@
error:
… while calling the 'addDrvOutputDependencies' builtin
at /pwd/lang/eval-fail-addDrvOutputDependencies-wrong-element-kind.nix:9:4:
at /pwd/eval-fail-addDrvOutputDependencies-wrong-element-kind.nix:9:4:
8|
9| in builtins.addDrvOutputDependencies drv.outPath
| ^
@@ -1,20 +1,20 @@
error:
… from call site
at /pwd/lang/eval-fail-assert.nix:4:1:
at /pwd/eval-fail-assert.nix:4:1:
3| in
4| x "x"
| ^
5|
… while calling 'x'
at /pwd/lang/eval-fail-assert.nix:2:7:
at /pwd/eval-fail-assert.nix:2:7:
1| let
2| x = arg: assert arg == "y"; 123;
| ^
3| in
error: assertion failed
at /pwd/lang/eval-fail-assert.nix:2:12:
at /pwd/eval-fail-assert.nix:2:12:
1| let
2| x = arg: assert arg == "y"; 123;
| ^
@@ -1,20 +1,20 @@
error:
… while evaluating the attribute 'puppy."${...}"'
at /pwd/lang/eval-fail-attr-name-type.nix:3:5:
at /pwd/eval-fail-attr-name-type.nix:3:5:
2| attrs = {
3| puppy.doggy = {};
| ^
4| };
… while evaluating an attribute name
at /pwd/lang/eval-fail-attr-name-type.nix:7:17:
at /pwd/eval-fail-attr-name-type.nix:7:17:
6| in
7| attrs.puppy.${key}
| ^
8|
error: expected a string but found an integer: 1
at /pwd/lang/eval-fail-attr-name-type.nix:7:17:
at /pwd/eval-fail-attr-name-type.nix:7:17:
6| in
7| attrs.puppy.${key}
| ^
@@ -1,8 +1,8 @@
error:
… while evaluating a path segment
at /pwd/lang/eval-fail-bad-string-interpolation-1.nix:1:2:
at /pwd/eval-fail-bad-string-interpolation-1.nix:1:2:
1| "${x: x}"
| ^
2|
error: cannot coerce a function to a string: «lambda @ /pwd/lang/eval-fail-bad-string-interpolation-1.nix:1:4»
error: cannot coerce a function to a string: «lambda @ /pwd/eval-fail-bad-string-interpolation-1.nix:1:4»
@@ -1 +1 @@
error: getting status of '/pwd/lang/fnord': No such file or directory
error: getting status of '/pwd/fnord': No such file or directory
@@ -1,8 +1,8 @@
error:
… while evaluating a path segment
at /pwd/lang/eval-fail-bad-string-interpolation-3.nix:1:3:
at /pwd/eval-fail-bad-string-interpolation-3.nix:1:3:
1| ''${x: x}''
| ^
2|
error: cannot coerce a function to a string: «lambda @ /pwd/lang/eval-fail-bad-string-interpolation-3.nix:1:5»
error: cannot coerce a function to a string: «lambda @ /pwd/eval-fail-bad-string-interpolation-3.nix:1:5»
@@ -1,6 +1,6 @@
error:
… while evaluating a path segment
at /pwd/lang/eval-fail-bad-string-interpolation-4.nix:9:3:
at /pwd/eval-fail-bad-string-interpolation-4.nix:9:3:
8| # The error message should not be too long.
9| ''${pkgs}''
| ^
@@ -1,20 +1,20 @@
error:
… while evaluating x
at /pwd/lang/eval-fail-blackhole.nix:5:1:
at /pwd/eval-fail-blackhole.nix:5:1:
4| in
5| x
| ^
6|
… while evaluating y
at /pwd/lang/eval-fail-blackhole.nix:2:7:
at /pwd/eval-fail-blackhole.nix:2:7:
1| let
2| x = y;
| ^
3| y = x;
error: infinite recursion encountered
at /pwd/lang/eval-fail-blackhole.nix:2:7:
at /pwd/eval-fail-blackhole.nix:2:7:
1| let
2| x = y;
| ^
@@ -1,6 +1,6 @@
error:
… while calling the 'length' builtin
at /pwd/lang/eval-fail-call-primop.nix:1:1:
at /pwd/eval-fail-call-primop.nix:1:1:
1| builtins.length 1
| ^
2|
@@ -1,18 +1,18 @@
error:
… while calling the 'deepSeq' builtin
at /pwd/lang/eval-fail-deepseq.nix:1:1:
at /pwd/eval-fail-deepseq.nix:1:1:
1| builtins.deepSeq { x = abort "foo"; } 456
| ^
2|
… while evaluating the attribute 'x'
at /pwd/lang/eval-fail-deepseq.nix:1:20:
at /pwd/eval-fail-deepseq.nix:1:20:
1| builtins.deepSeq { x = abort "foo"; } 456
| ^
2|
… while calling the 'abort' builtin
at /pwd/lang/eval-fail-deepseq.nix:1:24:
at /pwd/eval-fail-deepseq.nix:1:24:
1| builtins.deepSeq { x = abort "foo"; } 456
| ^
2|
@@ -1,13 +1,13 @@
error:
… while evaluating the attribute 'set'
at /pwd/lang/eval-fail-dup-dynamic-attrs.nix:2:3:
at /pwd/eval-fail-dup-dynamic-attrs.nix:2:3:
1| {
2| set = { "${"" + "b"}" = 1; };
| ^
3| set = { "${"b" + ""}" = 2; };
error: dynamic attribute 'b' already defined at /pwd/lang/eval-fail-dup-dynamic-attrs.nix:2:11
at /pwd/lang/eval-fail-dup-dynamic-attrs.nix:3:11:
error: dynamic attribute 'b' already defined at /pwd/eval-fail-dup-dynamic-attrs.nix:2:11
at /pwd/eval-fail-dup-dynamic-attrs.nix:3:11:
2| set = { "${"" + "b"}" = 1; };
3| set = { "${"b" + ""}" = 2; };
| ^
@@ -1,5 +1,5 @@
error: attribute 'a.b.c' already defined at /pwd/lang/eval-fail-dupAttr-deep.nix:1:3
at /pwd/lang/eval-fail-dupAttr-deep.nix:1:14:
error: attribute 'a.b.c' already defined at /pwd/eval-fail-dupAttr-deep.nix:1:3
at /pwd/eval-fail-dupAttr-deep.nix:1:14:
1| { a.b.c = 1; a.b.c.a.a = 1; }
| ^
2|
@@ -1,5 +1,5 @@
error: attribute 'a' already defined at /pwd/lang/eval-fail-dupAttr-inherit.nix:1:16
at /pwd/lang/eval-fail-dupAttr-inherit.nix:1:19:
error: attribute 'a' already defined at /pwd/eval-fail-dupAttr-inherit.nix:1:16
at /pwd/eval-fail-dupAttr-inherit.nix:1:19:
1| { inherit ({}) a; a.b = 1; }
| ^
2|
@@ -1,5 +1,5 @@
error: attribute 'a' already defined at /pwd/lang/eval-fail-dupAttr.nix:1:3
at /pwd/lang/eval-fail-dupAttr.nix:1:10:
error: attribute 'a' already defined at /pwd/eval-fail-dupAttr.nix:1:3
at /pwd/eval-fail-dupAttr.nix:1:10:
1| { a = 1; a.b = 1; }
| ^
2|
@@ -1,48 +1,48 @@
error:
… from call site
at /pwd/lang/eval-fail-duplicate-traces.nix:9:3:
at /pwd/eval-fail-duplicate-traces.nix:9:3:
8| in
9| throwAfter 2
| ^
10|
… while calling 'throwAfter'
at /pwd/lang/eval-fail-duplicate-traces.nix:4:16:
at /pwd/eval-fail-duplicate-traces.nix:4:16:
3| let
4| throwAfter = n:
| ^
5| if n > 0
… from call site
at /pwd/lang/eval-fail-duplicate-traces.nix:6:10:
at /pwd/eval-fail-duplicate-traces.nix:6:10:
5| if n > 0
6| then throwAfter (n - 1)
| ^
7| else throw "Uh oh!";
… while calling 'throwAfter'
at /pwd/lang/eval-fail-duplicate-traces.nix:4:16:
at /pwd/eval-fail-duplicate-traces.nix:4:16:
3| let
4| throwAfter = n:
| ^
5| if n > 0
… from call site
at /pwd/lang/eval-fail-duplicate-traces.nix:6:10:
at /pwd/eval-fail-duplicate-traces.nix:6:10:
5| if n > 0
6| then throwAfter (n - 1)
| ^
7| else throw "Uh oh!";
… while calling 'throwAfter'
at /pwd/lang/eval-fail-duplicate-traces.nix:4:16:
at /pwd/eval-fail-duplicate-traces.nix:4:16:
3| let
4| throwAfter = n:
| ^
5| if n > 0
… caused by explicit throw
at /pwd/lang/eval-fail-duplicate-traces.nix:7:10:
at /pwd/eval-fail-duplicate-traces.nix:7:10:
6| then throwAfter (n - 1)
7| else throw "Uh oh!";
| ^
@@ -1,6 +1,6 @@
error:
… while calling the 'fetchTree' builtin
at /pwd/lang/eval-fail-fetchTree-negative.nix:1:1:
at /pwd/eval-fail-fetchTree-negative.nix:1:1:
1| builtins.fetchTree {
| ^
2| type = "file";
@@ -1,12 +1,12 @@
error:
… while calling the 'seq' builtin
at /pwd/lang/eval-fail-flake-ref-to-string-negative-integer.nix:1:16:
at /pwd/eval-fail-flake-ref-to-string-negative-integer.nix:1:16:
1| let n = -1; in builtins.seq n (builtins.flakeRefToString {
| ^
2| type = "github";
… while calling the 'flakeRefToString' builtin
at /pwd/lang/eval-fail-flake-ref-to-string-negative-integer.nix:1:32:
at /pwd/eval-fail-flake-ref-to-string-negative-integer.nix:1:32:
1| let n = -1; in builtins.seq n (builtins.flakeRefToString {
| ^
2| type = "github";
@@ -1,34 +1,34 @@
error:
… while calling the 'foldl'' builtin
at /pwd/lang/eval-fail-foldlStrict-strict-op-application.nix:2:1:
at /pwd/eval-fail-foldlStrict-strict-op-application.nix:2:1:
1| # Tests that the result of applying op is forced even if the value is never used
2| builtins.foldl'
| ^
3| (_: f: f null)
… while calling anonymous lambda
at /pwd/lang/eval-fail-foldlStrict-strict-op-application.nix:3:7:
at /pwd/eval-fail-foldlStrict-strict-op-application.nix:3:7:
2| builtins.foldl'
3| (_: f: f null)
| ^
4| null
… from call site
at /pwd/lang/eval-fail-foldlStrict-strict-op-application.nix:3:10:
at /pwd/eval-fail-foldlStrict-strict-op-application.nix:3:10:
2| builtins.foldl'
3| (_: f: f null)
| ^
4| null
… while calling anonymous lambda
at /pwd/lang/eval-fail-foldlStrict-strict-op-application.nix:5:6:
at /pwd/eval-fail-foldlStrict-strict-op-application.nix:5:6:
4| null
5| [ (_: throw "Not the final value, but is still forced!") (_: 23) ]
| ^
6|
… caused by explicit throw
at /pwd/lang/eval-fail-foldlStrict-strict-op-application.nix:5:9:
at /pwd/eval-fail-foldlStrict-strict-op-application.nix:5:9:
4| null
5| [ (_: throw "Not the final value, but is still forced!") (_: 23) ]
| ^
@@ -1,6 +1,6 @@
error:
… while calling the 'fromJSON' builtin
at /pwd/lang/eval-fail-fromJSON-overflowing.nix:1:1:
at /pwd/eval-fail-fromJSON-overflowing.nix:1:1:
1| builtins.fromJSON ''{"attr": 18446744073709551615}''
| ^
2|
@@ -1,6 +1,6 @@
error:
… while calling the 'fromTOML' builtin
at /pwd/lang/eval-fail-fromTOML-timestamps.nix:1:1:
at /pwd/eval-fail-fromTOML-timestamps.nix:1:1:
1| builtins.fromTOML ''
| ^
2| key = "value"
@@ -1,6 +1,6 @@
error:
… while calling the 'toString' builtin
at /pwd/lang/eval-fail-hashfile-missing.nix:4:3:
at /pwd/eval-fail-hashfile-missing.nix:4:3:
3| in
4| toString (builtins.concatLists (map (hash: map (builtins.hashFile hash) paths) ["md5" "sha1" "sha256" "sha512"]))
| ^
@@ -10,4 +10,4 @@ error:
… while calling the 'hashFile' builtin
error: opening file '/pwd/lang/this-file-is-definitely-not-there-7392097': No such file or directory
error: opening file '/pwd/this-file-is-definitely-not-there-7392097': No such file or directory
@@ -1,30 +1,30 @@
error:
… from call site
at /pwd/lang/eval-fail-infinite-recursion-lambda.nix:1:1:
at /pwd/eval-fail-infinite-recursion-lambda.nix:1:1:
1| (x: x x) (x: x x)
| ^
2|
… while calling anonymous lambda
at /pwd/lang/eval-fail-infinite-recursion-lambda.nix:1:2:
at /pwd/eval-fail-infinite-recursion-lambda.nix:1:2:
1| (x: x x) (x: x x)
| ^
2|
… from call site
at /pwd/lang/eval-fail-infinite-recursion-lambda.nix:1:5:
at /pwd/eval-fail-infinite-recursion-lambda.nix:1:5:
1| (x: x x) (x: x x)
| ^
2|
… while calling anonymous lambda
at /pwd/lang/eval-fail-infinite-recursion-lambda.nix:1:11:
at /pwd/eval-fail-infinite-recursion-lambda.nix:1:11:
1| (x: x x) (x: x x)
| ^
2|
… from call site
at /pwd/lang/eval-fail-infinite-recursion-lambda.nix:1:14:
at /pwd/eval-fail-infinite-recursion-lambda.nix:1:14:
1| (x: x x) (x: x x)
| ^
2|
@@ -32,7 +32,7 @@ error:
(19997 duplicate frames omitted)
error: stack overflow; max-call-depth exceeded
at /pwd/lang/eval-fail-infinite-recursion-lambda.nix:1:14:
at /pwd/eval-fail-infinite-recursion-lambda.nix:1:14:
1| (x: x x) (x: x x)
| ^
2|
+1 -1
View File
@@ -1,5 +1,5 @@
error: expected a list but found an integer: 8
at /pwd/lang/eval-fail-list.nix:1:1:
at /pwd/eval-fail-list.nix:1:1:
1| 8++1
| ^
2|
@@ -1,12 +1,12 @@
error:
… from call site
at /pwd/lang/eval-fail-missing-and-unexpected-args.nix:1:1:
at /pwd/eval-fail-missing-and-unexpected-args.nix:1:1:
1| ({a, b, c}: a + b + c) {c = 1; d = 1; e = 1; f = 1;}
| ^
2|
error: function 'anonymous lambda' called without required arguments 'a' and 'b' and with unexpected arguments 'd', 'e' and 'f'
at /pwd/lang/eval-fail-missing-and-unexpected-args.nix:1:2:
at /pwd/eval-fail-missing-and-unexpected-args.nix:1:2:
1| ({a, b, c}: a + b + c) {c = 1; d = 1; e = 1; f = 1;}
| ^
2|
@@ -1,12 +1,12 @@
error:
… from call site
at /pwd/lang/eval-fail-missing-arg.nix:1:1:
at /pwd/eval-fail-missing-arg.nix:1:1:
1| ({x, y, z}: x + y + z) {x = "foo"; z = "bar";}
| ^
2|
error: function 'anonymous lambda' called without required argument 'y'
at /pwd/lang/eval-fail-missing-arg.nix:1:2:
at /pwd/eval-fail-missing-arg.nix:1:2:
1| ({x, y, z}: x + y + z) {x = "foo"; z = "bar";}
| ^
2|
@@ -1,12 +1,12 @@
error:
… from call site
at /pwd/lang/eval-fail-missing-args.nix:1:1:
at /pwd/eval-fail-missing-args.nix:1:1:
1| ({a, b, c, d}: a + b + c + d) { }
| ^
2|
error: function 'anonymous lambda' called without required arguments 'a', 'b', 'c' and 'd'
at /pwd/lang/eval-fail-missing-args.nix:1:2:
at /pwd/eval-fail-missing-args.nix:1:2:
1| ({a, b, c, d}: a + b + c + d) { }
| ^
2|
@@ -1,20 +1,20 @@
error:
… from call site
at /pwd/lang/eval-fail-mutual-recursion.nix:36:3:
at /pwd/eval-fail-mutual-recursion.nix:36:3:
35| in
36| throwAfterA true 10
| ^
37|
… while calling 'throwAfterA'
at /pwd/lang/eval-fail-mutual-recursion.nix:29:26:
at /pwd/eval-fail-mutual-recursion.nix:29:26:
28|
29| throwAfterA = recurse: n:
| ^
30| if n > 0
… from call site
at /pwd/lang/eval-fail-mutual-recursion.nix:31:10:
at /pwd/eval-fail-mutual-recursion.nix:31:10:
30| if n > 0
31| then throwAfterA recurse (n - 1)
| ^
@@ -23,21 +23,21 @@ error:
(19 duplicate frames omitted)
… from call site
at /pwd/lang/eval-fail-mutual-recursion.nix:33:10:
at /pwd/eval-fail-mutual-recursion.nix:33:10:
32| else if recurse
33| then throwAfterB true 10
| ^
34| else throw "Uh oh!";
… while calling 'throwAfterB'
at /pwd/lang/eval-fail-mutual-recursion.nix:22:26:
at /pwd/eval-fail-mutual-recursion.nix:22:26:
21| let
22| throwAfterB = recurse: n:
| ^
23| if n > 0
… from call site
at /pwd/lang/eval-fail-mutual-recursion.nix:24:10:
at /pwd/eval-fail-mutual-recursion.nix:24:10:
23| if n > 0
24| then throwAfterB recurse (n - 1)
| ^
@@ -46,7 +46,7 @@ error:
(19 duplicate frames omitted)
… from call site
at /pwd/lang/eval-fail-mutual-recursion.nix:26:10:
at /pwd/eval-fail-mutual-recursion.nix:26:10:
25| else if recurse
26| then throwAfterA false 10
| ^
@@ -55,7 +55,7 @@ error:
(21 duplicate frames omitted)
… caused by explicit throw
at /pwd/lang/eval-fail-mutual-recursion.nix:34:10:
at /pwd/eval-fail-mutual-recursion.nix:34:10:
33| then throwAfterB true 10
34| else throw "Uh oh!";
| ^
@@ -1 +1 @@
error: getting status of '/pwd/lang/fnord': No such file or directory
error: getting status of '/pwd/fnord': No such file or directory
@@ -1,6 +1,6 @@
error:
… caused by explicit throw
at /pwd/lang/eval-fail-not-throws.nix:1:4:
at /pwd/eval-fail-not-throws.nix:1:4:
1| ! (throw "uh oh!")
| ^
2|
@@ -1,5 +1,5 @@
error: integer overflow in adding 9223372036854775807 + 1
at /pwd/lang/eval-fail-overflowing-add.nix:4:8:
at /pwd/eval-fail-overflowing-add.nix:4:8:
3| b = 1;
4| in a + b
| ^
@@ -1,20 +1,20 @@
error:
… while calling the 'seq' builtin
at /pwd/lang/eval-fail-overflowing-div.nix:7:4:
at /pwd/eval-fail-overflowing-div.nix:7:4:
6| b = -1;
7| in builtins.seq intMin (builtins.seq b (intMin / b))
| ^
8|
… while calling the 'seq' builtin
at /pwd/lang/eval-fail-overflowing-div.nix:7:25:
at /pwd/eval-fail-overflowing-div.nix:7:25:
6| b = -1;
7| in builtins.seq intMin (builtins.seq b (intMin / b))
| ^
8|
… while calling the 'div' builtin
at /pwd/lang/eval-fail-overflowing-div.nix:7:48:
at /pwd/eval-fail-overflowing-div.nix:7:48:
6| b = -1;
7| in builtins.seq intMin (builtins.seq b (intMin / b))
| ^
@@ -1,13 +1,13 @@
error:
… while calling the 'mul' builtin
at /pwd/lang/eval-fail-overflowing-mul.nix:3:10:
at /pwd/eval-fail-overflowing-mul.nix:3:10:
2| a = 4294967297;
3| in a * a * a
| ^
4|
… while calling the 'mul' builtin
at /pwd/lang/eval-fail-overflowing-mul.nix:3:6:
at /pwd/eval-fail-overflowing-mul.nix:3:6:
2| a = 4294967297;
3| in a * a * a
| ^
@@ -1,6 +1,6 @@
error:
… while calling the 'sub' builtin
at /pwd/lang/eval-fail-overflowing-sub.nix:4:6:
at /pwd/eval-fail-overflowing-sub.nix:4:6:
3| b = 2;
4| in a - b
| ^
@@ -1,5 +1,5 @@
error: expected a Boolean but found a list: [ 1 [ 2 3 4 5 6 7 8 9 [ 1 «2 items elided» ] «2 items elided» ] «1 item elided» ]
at /pwd/lang/eval-fail-print-limit-list.nix:2:3:
at /pwd/eval-fail-print-limit-list.nix:2:3:
1| assert (
2| let x = [ 1 [ 2 3 4 5 6 7 8 9 x 10 11 ] 12 ];
| ^
@@ -1,5 +1,5 @@
error: expected a Boolean but found a set: { a = { a = { a = { a = { a = { a = { a = { a = { a = { a = { ... }; b = 2; }; }; }; }; }; }; }; }; «1 attribute elided» }; «1 attribute elided» }
at /pwd/lang/eval-fail-print-limit-set.nix:2:3:
at /pwd/eval-fail-print-limit-set.nix:2:3:
1| assert (
2| let x = { a.a.a.a.a.a.a.a.a = { a.a = 1; b = 2; }; a.b.c.x = 3; c = 4; };
| ^
@@ -1,24 +1,24 @@
error:
… while evaluating an expression to select 'foo' on it
at /pwd/lang/eval-fail-recursion.nix:1:21:
at /pwd/eval-fail-recursion.nix:1:21:
1| let a = {} // a; in a.foo
| ^
2|
… while evaluating a
at /pwd/lang/eval-fail-recursion.nix:1:21:
at /pwd/eval-fail-recursion.nix:1:21:
1| let a = {} // a; in a.foo
| ^
2|
… while evaluating a
at /pwd/lang/eval-fail-recursion.nix:1:15:
at /pwd/eval-fail-recursion.nix:1:15:
1| let a = {} // a; in a.foo
| ^
2|
error: infinite recursion encountered
at /pwd/lang/eval-fail-recursion.nix:1:15:
at /pwd/eval-fail-recursion.nix:1:15:
1| let a = {} // a; in a.foo
| ^
2|
@@ -1,5 +1,5 @@
error: attribute 'x' missing
at /pwd/lang/eval-fail-remove.nix:4:29:
at /pwd/eval-fail-remove.nix:4:29:
3| in
4| (removeAttrs attrs ["x"]).x
| ^
@@ -1,34 +1,34 @@
error:
… from call site
at /pwd/lang/eval-fail-scope-5.nix:7:3:
at /pwd/eval-fail-scope-5.nix:7:3:
6| in
7| f {}
| ^
8|
… while calling 'f'
at /pwd/lang/eval-fail-scope-5.nix:5:7:
at /pwd/eval-fail-scope-5.nix:5:7:
4|
5| f = {x ? y, y ? x}: x + y;
| ^
6| in
… while evaluating x
at /pwd/lang/eval-fail-scope-5.nix:5:23:
at /pwd/eval-fail-scope-5.nix:5:23:
4|
5| f = {x ? y, y ? x}: x + y;
| ^
6| in
… while evaluating y
at /pwd/lang/eval-fail-scope-5.nix:5:12:
at /pwd/eval-fail-scope-5.nix:5:12:
4|
5| f = {x ? y, y ? x}: x + y;
| ^
6| in
error: infinite recursion encountered
at /pwd/lang/eval-fail-scope-5.nix:5:12:
at /pwd/eval-fail-scope-5.nix:5:12:
4|
5| f = {x ? y, y ? x}: x + y;
| ^
@@ -1,20 +1,20 @@
error:
… while evaluating the attribute 'src.meta'
at /pwd/lang/eval-fail-select-err.nix:2:3:
at /pwd/eval-fail-select-err.nix:2:3:
1| let
2| somepkg.src = throw "invalid foo bar";
| ^
3| in somepkg.src.meta
… while evaluating an expression to select 'meta' on it
at /pwd/lang/eval-fail-select-err.nix:3:16:
at /pwd/eval-fail-select-err.nix:3:16:
2| somepkg.src = throw "invalid foo bar";
3| in somepkg.src.meta
| ^
4|
… caused by explicit throw
at /pwd/lang/eval-fail-select-err.nix:2:17:
at /pwd/eval-fail-select-err.nix:2:17:
1| let
2| somepkg.src = throw "invalid foo bar";
| ^
+2 -2
View File
@@ -1,12 +1,12 @@
error:
… while calling the 'seq' builtin
at /pwd/lang/eval-fail-seq.nix:1:1:
at /pwd/eval-fail-seq.nix:1:1:
1| builtins.seq (abort "foo") 2
| ^
2|
… while calling the 'abort' builtin
at /pwd/lang/eval-fail-seq.nix:1:15:
at /pwd/eval-fail-seq.nix:1:15:
1| builtins.seq (abort "foo") 2
| ^
2|
@@ -1,6 +1,6 @@
error:
… while calling the 'substring' builtin
at /pwd/lang/eval-fail-substring.nix:1:1:
at /pwd/eval-fail-substring.nix:1:1:
1| builtins.substring (builtins.sub 0 1) 1 "x"
| ^
2|
@@ -1,6 +1,6 @@
error:
… while calling the 'toPath' builtin
at /pwd/lang/eval-fail-to-path.nix:1:1:
at /pwd/eval-fail-to-path.nix:1:1:
1| builtins.toPath "foo/bar"
| ^
2|
@@ -1,18 +1,18 @@
error:
… while calling the 'toJSON' builtin
at /pwd/lang/eval-fail-toJSON-nested.nix:1:1:
at /pwd/eval-fail-toJSON-nested.nix:1:1:
1| builtins.toJSON { foo = a: 1; }
| ^
2|
… while evaluating attribute 'foo'
at /pwd/lang/eval-fail-toJSON-nested.nix:1:19:
at /pwd/eval-fail-toJSON-nested.nix:1:19:
1| builtins.toJSON { foo = a: 1; }
| ^
2|
error: cannot convert a function to JSON
at /pwd/lang/eval-fail-toJSON-nested.nix:1:19:
at /pwd/eval-fail-toJSON-nested.nix:1:19:
1| builtins.toJSON { foo = a: 1; }
| ^
2|
@@ -1,47 +1,47 @@
error:
… while calling the 'toJSON' builtin
at /pwd/lang/eval-fail-toJSON.nix:1:1:
at /pwd/eval-fail-toJSON.nix:1:1:
1| builtins.toJSON {
| ^
2| a.b = [
… while evaluating attribute 'a'
at /pwd/lang/eval-fail-toJSON.nix:2:3:
at /pwd/eval-fail-toJSON.nix:2:3:
1| builtins.toJSON {
2| a.b = [
| ^
3| true
… while evaluating attribute 'b'
at /pwd/lang/eval-fail-toJSON.nix:2:3:
at /pwd/eval-fail-toJSON.nix:2:3:
1| builtins.toJSON {
2| a.b = [
| ^
3| true
… while evaluating list element at index 3
at /pwd/lang/eval-fail-toJSON.nix:2:3:
at /pwd/eval-fail-toJSON.nix:2:3:
1| builtins.toJSON {
2| a.b = [
| ^
3| true
… while evaluating attribute 'c'
at /pwd/lang/eval-fail-toJSON.nix:7:7:
at /pwd/eval-fail-toJSON.nix:7:7:
6| {
7| c.d = throw "hah no";
| ^
8| }
… while evaluating attribute 'd'
at /pwd/lang/eval-fail-toJSON.nix:7:7:
at /pwd/eval-fail-toJSON.nix:7:7:
6| {
7| c.d = throw "hah no";
| ^
8| }
… caused by explicit throw
at /pwd/lang/eval-fail-toJSON.nix:7:13:
at /pwd/eval-fail-toJSON.nix:7:13:
6| {
7| c.d = throw "hah no";
| ^
@@ -1,6 +1,6 @@
error:
… while calling the 'toString' builtin
at /pwd/lang/eval-fail-toString.nix:1:1:
at /pwd/eval-fail-toString.nix:1:1:
1| toString { __toString = 1; }
| ^
2|
@@ -8,7 +8,7 @@ error:
… while converting a set to string
error: attempt to call something which is not a function but an integer: 1
at /pwd/lang/eval-fail-toString.nix:1:12:
at /pwd/eval-fail-toString.nix:1:12:
1| toString { __toString = 1; }
| ^
2|
@@ -1,12 +1,12 @@
error:
… from call site
at /pwd/lang/eval-fail-undeclared-arg.nix:1:1:
at /pwd/eval-fail-undeclared-arg.nix:1:1:
1| ({x, z}: x + z) {x = "foo"; y = "bla"; z = "bar";}
| ^
2|
error: function 'anonymous lambda' called with unexpected argument 'y'
at /pwd/lang/eval-fail-undeclared-arg.nix:1:2:
at /pwd/eval-fail-undeclared-arg.nix:1:2:
1| ({x, z}: x + z) {x = "foo"; y = "bla"; z = "bar";}
| ^
2|
@@ -1,12 +1,12 @@
error:
… from call site
at /pwd/lang/eval-fail-undeclared-args.nix:1:1:
at /pwd/eval-fail-undeclared-args.nix:1:1:
1| ({a ? "foo", b ? "bar"}: a + b) {c = "meow"; d = "meow";}
| ^
2|
error: function 'anonymous lambda' called with unexpected arguments 'c' and 'd'
at /pwd/lang/eval-fail-undeclared-args.nix:1:2:
at /pwd/eval-fail-undeclared-args.nix:1:2:
1| ({a ? "foo", b ? "bar"}: a + b) {c = "meow"; d = "meow";}
| ^
2|
@@ -1,13 +1,13 @@
error:
… while evaluating an attribute name
at /pwd/lang/eval-fail-using-set-as-attr-name.nix:5:10:
at /pwd/eval-fail-using-set-as-attr-name.nix:5:10:
4| in
5| attr.${key}
| ^
6|
error: expected a string but found a set: { }
at /pwd/lang/eval-fail-using-set-as-attr-name.nix:5:10:
at /pwd/eval-fail-using-set-as-attr-name.nix:5:10:
4| in
5| attr.${key}
| ^
@@ -1 +1 @@
--arg lib import(lang/lib.nix) --argstr xyzzy xyzzy! -A result
--arg lib import(./lib.nix) --argstr xyzzy xyzzy! -A result
@@ -1 +1 @@
[ { column = 17; file = "/pwd/lang/eval-okay-inherit-attr-pos.nix"; line = 4; } { column = 19; file = "/pwd/lang/eval-okay-inherit-attr-pos.nix"; line = 4; } { column = 21; file = "/pwd/lang/eval-okay-inherit-attr-pos.nix"; line = 5; } { column = 23; file = "/pwd/lang/eval-okay-inherit-attr-pos.nix"; line = 5; } ]
[ { column = 17; file = "/pwd/eval-okay-inherit-attr-pos.nix"; line = 4; } { column = 19; file = "/pwd/eval-okay-inherit-attr-pos.nix"; line = 4; } { column = 21; file = "/pwd/eval-okay-inherit-attr-pos.nix"; line = 5; } { column = 23; file = "/pwd/eval-okay-inherit-attr-pos.nix"; line = 5; } ]
@@ -1 +1 @@
{ absolute = /foo; expr = /pwd/lang/foo/bar; home = /fake-home/foo; notfirst = /pwd/lang/bar/foo; simple = /pwd/lang/foo; slashes = /foo/bar; surrounded = /pwd/lang/a-foo-b; }
{ absolute = /foo; expr = /pwd/foo/bar; home = /fake-home/foo; notfirst = /pwd/bar/foo; simple = /pwd/foo; slashes = /foo/bar; surrounded = /pwd/a-foo-b; }
@@ -1 +1 @@
--extra-deprecated-features shadow-internal-symbols -I lang/dir1 -I lang/dir2 -I dir5=lang/dir3
--extra-deprecated-features shadow-internal-symbols -I dir1 -I dir2 -I dir5=dir3
@@ -1 +1 @@
{ column = 4; file = "/pwd/lang/eval-okay-unsafeGetAttrPos.imported-nix"; line = 6; }
{ column = 4; file = "/pwd/eval-okay-unsafeGetAttrPos.imported-nix"; line = 6; }
+1 -1
View File
@@ -12,7 +12,7 @@ function diffAndAcceptInner() {
if test -e "$expected"; then
local -r expectedOrEmpty="$expected"
else
local -r expectedOrEmpty=lang/empty.exp
local -r expectedOrEmpty=empty.exp
fi
# Diff so we get a nice message
@@ -1,12 +1,12 @@
warning: __overrides attributes are deprecated and will be removed in the future. Use --extra-deprecated-features rec-set-overrides to silence this warning.
at «stdin»:3:16:
2| # Should warn
3| { a = rec {}; a.__overrides = {}; }
| ^
4| rec { __overrides = {}; }
at «stdin»:3:17:
2| # Should warn
3| { a = rec {}; a.__overrides = {}; }
| ^
4| rec { __overrides = {}; }
warning: __overrides attributes are deprecated and will be removed in the future. Use --extra-deprecated-features rec-set-overrides to silence this warning.
at «stdin»:4:8:
3| { a = rec {}; a.__overrides = {}; }
4| rec { __overrides = {}; }
| ^
5| # Should not warn: Not recursive
at «stdin»:4:9:
3| { a = rec {}; a.__overrides = {}; }
4| rec { __overrides = {}; }
| ^
5| # Should not warn: Not recursive
@@ -1,9 +1,9 @@
[
# Should warn
{ a = rec {}; a.__overrides = {}; }
rec { __overrides = {}; }
# Should not warn: Not recursive
{ __overrides = {}; }
# Should not warn: Dynamic
rec { ${"__overrides" + ""} = {}; }
# Should warn
{ a = rec {}; a.__overrides = {}; }
rec { __overrides = {}; }
# Should not warn: Not recursive
{ __overrides = {}; }
# Should not warn: Dynamic
rec { ${"__overrides" + ""} = {}; }
]