ed09821859
* Don't use local file names in tests since they will produce different parse trees depending on the current directory.
47 lines
No EOL
1.3 KiB
Bash
47 lines
No EOL
1.3 KiB
Bash
fail=0
|
|
|
|
for i in lang/parse-fail-*.nix; do
|
|
echo "parsing $i (should fail)";
|
|
i=$(basename $i .nix)
|
|
if $TOP/src/nix-instantiate/nix-instantiate --parse-only - < lang/$i.nix; then
|
|
echo "FAIL: $i shouldn't parse"
|
|
fail=1
|
|
fi
|
|
done
|
|
|
|
for i in lang/parse-okay-*.nix; do
|
|
echo "parsing $i (should succeed)";
|
|
i=$(basename $i .nix)
|
|
if ! $TOP/src/nix-instantiate/nix-instantiate --parse-only - < lang/$i.nix > lang/$i.ast; then
|
|
echo "FAIL: $i should parse"
|
|
fail=1
|
|
fi
|
|
if ! $aterm_bin/atdiff lang/$i.ast lang/$i.exp; then
|
|
echo "FAIL: parse tree of $i not as expected"
|
|
fail=1
|
|
fi
|
|
done
|
|
|
|
for i in lang/eval-fail-*.nix; do
|
|
echo "evaluating $i (should fail)";
|
|
i=$(basename $i .nix)
|
|
if $TOP/src/nix-instantiate/nix-instantiate --eval-only - < lang/$i.nix; then
|
|
echo "FAIL: $i shouldn't evaluate"
|
|
fail=1
|
|
fi
|
|
done
|
|
|
|
for i in lang/eval-okay-*.nix; do
|
|
echo "evaluating $i (should succeed)";
|
|
i=$(basename $i .nix)
|
|
if ! $TOP/src/nix-instantiate/nix-instantiate --eval-only - < lang/$i.nix > lang/$i.out; then
|
|
echo "FAIL: $i should evaluate"
|
|
fail=1
|
|
fi
|
|
if ! $aterm_bin/atdiff lang/$i.out lang/$i.exp; then
|
|
echo "FAIL: evaluation result of $i not as expected"
|
|
fail=1
|
|
fi
|
|
done
|
|
|
|
exit $fail |