diff --git a/tests/stubs.nix b/tests/stubs.nix index 24158c2c3..078a760fd 100644 --- a/tests/stubs.nix +++ b/tests/stubs.nix @@ -64,8 +64,19 @@ let meta.mainProgram = name; } buildScript; + drvExtraAttrs = lib.filterAttrs (_: v: !lib.isFunction v) extraAttrs; + + outerExtraAttrs = lib.filterAttrs (_: lib.isFunction) extraAttrs; + + overriddenPkg = + if drvExtraAttrs == { } then + pkg + else + pkg.overrideAttrs (old: lib.recursiveUpdate old drvExtraAttrs); + stubbedPkg = - pkg + overriddenPkg + // outerExtraAttrs // lib.optionalAttrs (outPath != null) { inherit outPath; @@ -74,12 +85,11 @@ let # Allow the original package to be used in derivation inputs __spliced = { - buildHost = pkg; - hostTarget = pkg; + buildHost = overriddenPkg; + hostTarget = overriddenPkg; }; } - // lib.optionalAttrs (version != null) { inherit version; } - // extraAttrs; + // lib.optionalAttrs (version != null) { inherit version; }; in stubbedPkg;