2024-03-27 17:58:42 +01:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
extendModules,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}:
|
2022-06-06 13:29:04 +02:00
|
|
|
let
|
|
|
|
inherit (lib) mkOption types;
|
2024-03-27 17:58:42 +01:00
|
|
|
|
|
|
|
unsafeGetAttrPosStringOr =
|
|
|
|
default: name: value:
|
|
|
|
let
|
|
|
|
p = builtins.unsafeGetAttrPos name value;
|
|
|
|
in
|
|
|
|
if p == null then default else p.file + ":" + toString p.line + ":" + toString p.column;
|
|
|
|
|
2022-06-06 13:29:04 +02:00
|
|
|
in
|
|
|
|
{
|
|
|
|
options = {
|
|
|
|
result = mkOption {
|
|
|
|
internal = true;
|
2022-09-29 10:32:31 +02:00
|
|
|
default = config;
|
2022-06-06 13:29:04 +02:00
|
|
|
};
|
|
|
|
};
|
2024-03-27 17:58:42 +01:00
|
|
|
config = {
|
|
|
|
# Docs: nixos/doc/manual/development/writing-nixos-tests.section.md
|
|
|
|
/**
|
|
|
|
See https://nixos.org/manual/nixos/unstable#sec-override-nixos-test
|
|
|
|
*/
|
|
|
|
passthru.extend =
|
|
|
|
args@{
|
|
|
|
modules,
|
|
|
|
specialArgs ? { },
|
|
|
|
}:
|
|
|
|
(extendModules {
|
|
|
|
inherit specialArgs;
|
|
|
|
modules = map (lib.setDefaultModuleLocation (
|
|
|
|
unsafeGetAttrPosStringOr "<test.extend module>" "modules" args
|
|
|
|
)) modules;
|
|
|
|
}).config.test;
|
|
|
|
};
|
2022-06-06 13:29:04 +02:00
|
|
|
}
|