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.

(cherry picked from commit 221056c59f)
This commit is contained in:
Naïm Favier 2023-06-02 13:14:53 +02:00 committed by Robert Helgesson
parent 9787dffff5
commit 1f5735f335
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 = { test.stubs.autojump = {
buildScript = "mkdir -p $out/bin; touch $out/bin/autojump"; buildScript = "mkdir -p $out/bin; touch $out/bin/autojump";
outPath = null;
}; };
nmt.script = '' nmt.script = ''

View file

@ -24,7 +24,7 @@
WantedBy=default.target WantedBy=default.target
[Service] [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_DIRECTORY=/a/path
Environment=GIT_SYNC_COMMAND=@git-sync@/bin/git-sync Environment=GIT_SYNC_COMMAND=@git-sync@/bin/git-sync
Environment=GIT_SYNC_REPOSITORY=git+ssh://user@example.com:/~user/path/to/repo.git Environment=GIT_SYNC_REPOSITORY=git+ssh://user@example.com:/~user/path/to/repo.git

View file

@ -42,8 +42,18 @@ let
dummyPackage dummyPackage
else else
pkgs.runCommandLocal name { pname = name; } buildScript; pkgs.runCommandLocal name { pname = name; } buildScript;
in pkg // optionalAttrs (outPath != null) { inherit outPath; } in pkg // optionalAttrs (outPath != null) {
// optionalAttrs (version != null) { inherit version; }; 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 { in {
options.test.stubs = mkOption { options.test.stubs = mkOption {