diff options
author | eldritch horrors <pennae@lix.systems> | 2024-03-04 07:21:01 +0100 |
---|---|---|
committer | eldritch horrors <pennae@lix.systems> | 2024-03-04 07:21:01 +0100 |
commit | 7614aa97975f3e6e36b6ffbd9fec34462021ab39 (patch) | |
tree | ebb2521607d7b5a30fadcc13e0af889159d5af2e /tests | |
parent | 64a269ef73b111d49037812bd899b5cb883158ef (diff) |
Merge pull request #4093 from matthewbauer/eval-system
Add eval-system option
(cherry picked from commit 071dbbee33af9f27338c3e53e4ea067dbfa14010)
Change-Id: Ia81358c8cfb60241da07a4d0e84b9ee62a18a53f
Diffstat (limited to 'tests')
-rw-r--r-- | tests/functional/impure-eval.sh | 35 | ||||
-rw-r--r-- | tests/functional/local.mk | 1 | ||||
-rw-r--r-- | tests/unit/libexpr/primops.cc | 4 |
3 files changed, 39 insertions, 1 deletions
diff --git a/tests/functional/impure-eval.sh b/tests/functional/impure-eval.sh new file mode 100644 index 000000000..6c72f01d7 --- /dev/null +++ b/tests/functional/impure-eval.sh @@ -0,0 +1,35 @@ +source common.sh + +export REMOTE_STORE="dummy://" + +simpleTest () { + local expr=$1; shift + local result=$1; shift + # rest, extra args + + [[ "$(nix eval --impure --raw "$@" --expr "$expr")" == "$result" ]] +} + +# `builtins.storeDir` + +## Store dir follows `store` store setting +simpleTest 'builtins.storeDir' '/foo' --store "$REMOTE_STORE?store=/foo" +simpleTest 'builtins.storeDir' '/bar' --store "$REMOTE_STORE?store=/bar" + +# `builtins.currentSystem` + +## `system` alone affects by default +simpleTest 'builtins.currentSystem' 'foo' --system 'foo' +simpleTest 'builtins.currentSystem' 'bar' --system 'bar' + +## `system` affects if `eval-system` is an empty string +simpleTest 'builtins.currentSystem' 'foo' --system 'foo' --eval-system '' +simpleTest 'builtins.currentSystem' 'bar' --system 'bar' --eval-system '' + +## `eval-system` alone affects +simpleTest 'builtins.currentSystem' 'foo' --eval-system 'foo' +simpleTest 'builtins.currentSystem' 'bar' --eval-system 'bar' + +## `eval-system` overrides `system` +simpleTest 'builtins.currentSystem' 'bar' --system 'foo' --eval-system 'bar' +simpleTest 'builtins.currentSystem' 'baz' --system 'foo' --eval-system 'baz' diff --git a/tests/functional/local.mk b/tests/functional/local.mk index 6b79020fc..9d69c925b 100644 --- a/tests/functional/local.mk +++ b/tests/functional/local.mk @@ -68,6 +68,7 @@ nix_tests = \ build-remote-trustless-should-pass-3.sh \ build-remote-trustless-should-fail-0.sh \ nar-access.sh \ + impure-eval.sh \ pure-eval.sh \ eval.sh \ repl.sh \ diff --git a/tests/unit/libexpr/primops.cc b/tests/unit/libexpr/primops.cc index ce3b5d11f..71e838b32 100644 --- a/tests/unit/libexpr/primops.cc +++ b/tests/unit/libexpr/primops.cc @@ -1,6 +1,8 @@ #include <gmock/gmock.h> #include <gtest/gtest.h> +#include "eval-settings.hh" + #include "tests/libexpr.hh" namespace nix { @@ -614,7 +616,7 @@ namespace nix { TEST_F(PrimOpTest, currentSystem) { auto v = eval("builtins.currentSystem"); - ASSERT_THAT(v, IsStringEq(settings.thisSystem.get())); + ASSERT_THAT(v, IsStringEq(evalSettings.getCurrentSystem())); } TEST_F(PrimOpTest, derivation) { |