2018-01-16 18:50:38 +01:00
|
|
|
source common.sh
|
|
|
|
|
|
|
|
clearStore
|
|
|
|
|
2019-11-27 00:05:30 +01:00
|
|
|
nix eval --expr 'assert 1 + 2 == 3; true'
|
2018-01-16 18:50:38 +01:00
|
|
|
|
2019-11-27 00:05:30 +01:00
|
|
|
[[ $(nix eval --impure --expr 'builtins.readFile ./pure-eval.sh') =~ clearStore ]]
|
2018-01-16 18:50:38 +01:00
|
|
|
|
2021-11-25 14:48:01 +01:00
|
|
|
missingImpureErrorMsg=$(! nix eval --expr 'builtins.readFile ./pure-eval.sh' 2>&1)
|
|
|
|
|
2021-12-09 16:26:46 +01:00
|
|
|
echo "$missingImpureErrorMsg" | grepQuiet -- --impure || \
|
2021-11-25 14:48:01 +01:00
|
|
|
fail "The error message should mention the “--impure” flag to unblock users"
|
2018-01-16 18:50:38 +01:00
|
|
|
|
2021-12-23 10:35:09 +01:00
|
|
|
[[ $(nix eval --expr 'builtins.pathExists ./pure-eval.sh') == false ]] || \
|
|
|
|
fail "Calling 'pathExists' on a non-authorised path should return false"
|
|
|
|
|
2019-11-27 00:05:30 +01:00
|
|
|
(! nix eval --expr builtins.currentTime)
|
|
|
|
(! nix eval --expr builtins.currentSystem)
|
2018-01-16 18:50:38 +01:00
|
|
|
|
|
|
|
(! nix-instantiate --pure-eval ./simple.nix)
|
|
|
|
|
2024-08-10 15:12:26 +02:00
|
|
|
[[ $(nix eval --impure --expr "(import (builtins.fetchurl { url = \"file://$(pwd)/pure-eval.nix\"; })).x") == 123 ]]
|
|
|
|
(! nix eval --expr "(import (builtins.fetchurl { url = \"file://$(pwd)/pure-eval.nix\"; })).x")
|
|
|
|
nix eval --expr "(import (builtins.fetchurl { url = \"file://$(pwd)/pure-eval.nix\"; sha256 = \"$(nix hash file pure-eval.nix --type sha256)\"; })).x"
|
2020-12-02 21:25:32 +01:00
|
|
|
|
|
|
|
rm -rf $TEST_ROOT/eval-out
|
|
|
|
nix eval --store dummy:// --write-to $TEST_ROOT/eval-out --expr '{ x = "foo" + "bar"; y = { z = "bla"; }; }'
|
|
|
|
[[ $(cat $TEST_ROOT/eval-out/x) = foobar ]]
|
|
|
|
[[ $(cat $TEST_ROOT/eval-out/y/z) = bla ]]
|
|
|
|
|
|
|
|
rm -rf $TEST_ROOT/eval-out
|
|
|
|
(! nix eval --store dummy:// --write-to $TEST_ROOT/eval-out --expr '{ "." = "bla"; }')
|
2022-06-21 14:08:18 +02:00
|
|
|
|
|
|
|
(! nix eval --expr '~/foo')
|