diff options
Diffstat (limited to 'third_party/nix/tests/plugins/plugintest.cc')
-rw-r--r-- | third_party/nix/tests/plugins/plugintest.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/third_party/nix/tests/plugins/plugintest.cc b/third_party/nix/tests/plugins/plugintest.cc new file mode 100644 index 000000000000..c085d33295be --- /dev/null +++ b/third_party/nix/tests/plugins/plugintest.cc @@ -0,0 +1,24 @@ +#include "config.hh" +#include "primops.hh" + +using namespace nix; + +struct MySettings : Config +{ + Setting<bool> settingSet{this, false, "setting-set", + "Whether the plugin-defined setting was set"}; +}; + +MySettings mySettings; + +static GlobalConfig::Register rs(&mySettings); + +static void prim_anotherNull (EvalState & state, const Pos & pos, Value ** args, Value & v) +{ + if (mySettings.settingSet) + mkNull(v); + else + mkBool(v, false); +} + +static RegisterPrimOp rp("anotherNull", 0, prim_anotherNull); |