diff options
author | Shea Levy <shea@shealevy.com> | 2018-02-13T19·43-0500 |
---|---|---|
committer | Shea Levy <shea@shealevy.com> | 2018-02-13T19·43-0500 |
commit | de4934ab3b26aa851b7044e9884102cc054dc092 (patch) | |
tree | 94e333d35b7d48d93bfb70f132023d6b8d3d5752 /tests | |
parent | 3fe9767dd33499c2560d209dc13a01f5fcead1f0 (diff) |
Allow plugins to define new settings.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/plugins.sh | 2 | ||||
-rw-r--r-- | tests/plugins/plugintest.cc | 13 |
2 files changed, 12 insertions, 3 deletions
diff --git a/tests/plugins.sh b/tests/plugins.sh index 0fad4f773a28..4b1baeddce32 100644 --- a/tests/plugins.sh +++ b/tests/plugins.sh @@ -2,6 +2,6 @@ source common.sh set -o pipefail -res=$(nix eval '(builtins.anotherNull)' --option plugin-files $PWD/plugins/libplugintest*) +res=$(nix eval '(builtins.anotherNull)' --option setting-set true --option plugin-files $PWD/plugins/libplugintest*) [ "$res"x = "nullx" ] diff --git a/tests/plugins/plugintest.cc b/tests/plugins/plugintest.cc index 6b5e6d7cde21..8da15ebabd7d 100644 --- a/tests/plugins/plugintest.cc +++ b/tests/plugins/plugintest.cc @@ -1,10 +1,19 @@ +#include "globals.hh" #include "primops.hh" using namespace nix; +static BaseSetting<bool> settingSet{false, "setting-set", + "Whether the plugin-defined setting was set"}; + +static RegisterSetting rs(&settingSet); + static void prim_anotherNull (EvalState & state, const Pos & pos, Value ** args, Value & v) { - mkNull(v); + if (settingSet) + mkNull(v); + else + mkBool(v, false); } -static RegisterPrimOp r("anotherNull", 0, prim_anotherNull); +static RegisterPrimOp rp("anotherNull", 0, prim_anotherNull); |