mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-10 00:08:07 +02:00
tests/functional/lang: Add post processing and remove certain line numbers
This commit is contained in:
parent
74698d54c8
commit
f9a1d6b018
3 changed files with 37 additions and 13 deletions
|
@ -50,11 +50,22 @@ set +x
|
|||
badDiff=0
|
||||
badExitCode=0
|
||||
|
||||
# Extra post-processing that's specific to each test case
|
||||
postprocess() {
|
||||
if [[ -e "lang/$1.postprocess" ]]; then
|
||||
(
|
||||
set -x;
|
||||
"lang/$1.postprocess" "lang/$1"
|
||||
)
|
||||
fi
|
||||
}
|
||||
|
||||
for i in lang/parse-fail-*.nix; do
|
||||
echo "parsing $i (should fail)";
|
||||
i=$(basename "$i" .nix)
|
||||
if expectStderr 1 nix-instantiate --parse - < "lang/$i.nix" > "lang/$i.err"
|
||||
then
|
||||
postprocess "$i"
|
||||
diffAndAccept "$i" err err.exp
|
||||
else
|
||||
echo "FAIL: $i shouldn't parse"
|
||||
|
@ -71,6 +82,7 @@ for i in lang/parse-okay-*.nix; do
|
|||
2> "lang/$i.err"
|
||||
then
|
||||
sed "s!$(pwd)!/pwd!g" "lang/$i.out" "lang/$i.err"
|
||||
postprocess "$i"
|
||||
diffAndAccept "$i" out exp
|
||||
diffAndAccept "$i" err err.exp
|
||||
else
|
||||
|
@ -94,6 +106,7 @@ for i in lang/eval-fail-*.nix; do
|
|||
expectStderr 1 nix-instantiate $flags "lang/$i.nix" \
|
||||
| sed "s!$(pwd)!/pwd!g" > "lang/$i.err"
|
||||
then
|
||||
postprocess "$i"
|
||||
diffAndAccept "$i" err err.exp
|
||||
else
|
||||
echo "FAIL: $i shouldn't evaluate"
|
||||
|
@ -109,6 +122,7 @@ for i in lang/eval-okay-*.nix; do
|
|||
if expect 0 nix-instantiate --eval --xml --no-location --strict \
|
||||
"lang/$i.nix" > "lang/$i.out.xml"
|
||||
then
|
||||
postprocess "$i"
|
||||
diffAndAccept "$i" out.xml exp.xml
|
||||
else
|
||||
echo "FAIL: $i should evaluate"
|
||||
|
@ -129,6 +143,7 @@ for i in lang/eval-okay-*.nix; do
|
|||
2> "lang/$i.err"
|
||||
then
|
||||
sed -i "s!$(pwd)!/pwd!g" "lang/$i.out" "lang/$i.err"
|
||||
postprocess "$i"
|
||||
diffAndAccept "$i" out exp
|
||||
diffAndAccept "$i" err err.exp
|
||||
else
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
error:
|
||||
… while evaluating the attribute 'outPath'
|
||||
at <nix/derivation-internal.nix>:44:9:
|
||||
43| value = commonAttrs // {
|
||||
44| outPath = builtins.getAttr outputName strict;
|
||||
at <nix/derivation-internal.nix>:<number>:<number>:
|
||||
<number>| value = commonAttrs // {
|
||||
<number>| outPath = builtins.getAttr outputName strict;
|
||||
| ^
|
||||
45| drvPath = strict.drvPath;
|
||||
<number>| drvPath = strict.drvPath;
|
||||
|
||||
… while calling the 'getAttr' builtin
|
||||
at <nix/derivation-internal.nix>:44:19:
|
||||
43| value = commonAttrs // {
|
||||
44| outPath = builtins.getAttr outputName strict;
|
||||
at <nix/derivation-internal.nix>:<number>:<number>:
|
||||
<number>| value = commonAttrs // {
|
||||
<number>| outPath = builtins.getAttr outputName strict;
|
||||
| ^
|
||||
45| drvPath = strict.drvPath;
|
||||
<number>| drvPath = strict.drvPath;
|
||||
|
||||
… while calling the 'derivationStrict' builtin
|
||||
at <nix/derivation-internal.nix>:34:12:
|
||||
33|
|
||||
34| strict = derivationStrict drvAttrs;
|
||||
at <nix/derivation-internal.nix>:<number>:<number>:
|
||||
<number>|
|
||||
<number>| strict = derivationStrict drvAttrs;
|
||||
| ^
|
||||
35|
|
||||
<number>|
|
||||
|
||||
… while evaluating derivation '~jiggle~'
|
||||
whose name attribute is located at /pwd/lang/eval-fail-derivation-name.nix:2:3
|
||||
whose name attribute is located at /pwd/lang/eval-fail-derivation-name.nix:<number>:<number>
|
||||
|
||||
error: invalid derivation name: name '~jiggle~' contains illegal character '~'. Please pass a different 'name'.
|
||||
|
|
9
tests/functional/lang/eval-fail-derivation-name.postprocess
Executable file
9
tests/functional/lang/eval-fail-derivation-name.postprocess
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
testcaseBasename=$1
|
||||
|
||||
# Line numbers change when derivation.nix docs are updated.
|
||||
sed -i "$testcaseBasename.err" \
|
||||
-e 's/[0-9 ][0-9 ][0-9 ][0-9 ][0-9 ][0-9 ][0-9 ][0-9]\([^0-9]\)/<number>\1/g' \
|
||||
-e 's/[0-9][0-9]*/<number>/g' \
|
||||
;
|
Loading…
Reference in a new issue