tests: fix `getOutput` on stubs

Setting `outputSpecified` prevents `getOutput` from descending into
outputs, which don't have an overridden `outPath`.

Additionally, use `__spliced` to permit derivations to use the dummy as
an input.
This commit is contained in:
Naïm Favier 2023-06-02 13:14:53 +02:00 committed by Robert Helgesson
parent bffc49ffb2
commit 221056c59f
No known key found for this signature in database
GPG Key ID: 36BDAA14C2797E89
3 changed files with 14 additions and 3 deletions

View File

@ -8,6 +8,7 @@ with lib;
test.stubs.autojump = {
buildScript = "mkdir -p $out/bin; touch $out/bin/autojump";
outPath = null;
};
nmt.script = ''

View File

@ -24,7 +24,7 @@
WantedBy=default.target
[Service]
Environment=PATH=/nix/store/00000000000000000000000000000000-openssh/bin:/nix/store/00000000000000000000000000000000-git/bin
Environment=PATH=@openssh@/bin:/nix/store/00000000000000000000000000000000-git/bin
Environment=GIT_SYNC_DIRECTORY=/a/path
Environment=GIT_SYNC_COMMAND=@git-sync@/bin/git-sync
Environment=GIT_SYNC_REPOSITORY=git+ssh://user@example.com:/~user/path/to/repo.git

View File

@ -41,8 +41,18 @@ let
dummyPackage
else
pkgs.runCommandLocal name { pname = name; } buildScript;
in pkg // optionalAttrs (outPath != null) { inherit outPath; }
// optionalAttrs (version != null) { inherit version; };
in pkg // optionalAttrs (outPath != null) {
inherit outPath;
# Prevent getOutput from descending into outputs
outputSpecified = true;
# Allow the original package to be used in derivation inputs
__spliced = {
buildHost = pkg;
hostTarget = pkg;
};
} // optionalAttrs (version != null) { inherit version; };
in {
options.test.stubs = mkOption {