forked from lix-project/lix
Merge pull request #7465 from edolstra/impure-derivations-dry-run
Fix a crash in DerivedPath::Built::toJSON() with impure derivations
This commit is contained in:
commit
26c7602c39
|
@ -22,9 +22,10 @@ nlohmann::json DerivedPath::Built::toJSON(ref<Store> store) const {
|
||||||
const auto knownOutputs = store->queryPartialDerivationOutputMap(drvPath);
|
const auto knownOutputs = store->queryPartialDerivationOutputMap(drvPath);
|
||||||
for (const auto & output : outputs) {
|
for (const auto & output : outputs) {
|
||||||
auto knownOutput = get(knownOutputs, output);
|
auto knownOutput = get(knownOutputs, output);
|
||||||
res["outputs"][output] = (knownOutput && *knownOutput)
|
if (knownOutput && *knownOutput)
|
||||||
? store->printStorePath(**knownOutput)
|
res["outputs"][output] = store->printStorePath(**knownOutput);
|
||||||
: nullptr;
|
else
|
||||||
|
res["outputs"][output] = nullptr;
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ clearStore
|
||||||
# Basic test of impure derivations: building one a second time should not use the previous result.
|
# Basic test of impure derivations: building one a second time should not use the previous result.
|
||||||
printf 0 > $TEST_ROOT/counter
|
printf 0 > $TEST_ROOT/counter
|
||||||
|
|
||||||
|
nix build --dry-run --json --file ./impure-derivations.nix impure.all
|
||||||
json=$(nix build -L --no-link --json --file ./impure-derivations.nix impure.all)
|
json=$(nix build -L --no-link --json --file ./impure-derivations.nix impure.all)
|
||||||
path1=$(echo $json | jq -r .[].outputs.out)
|
path1=$(echo $json | jq -r .[].outputs.out)
|
||||||
path1_stuff=$(echo $json | jq -r .[].outputs.stuff)
|
path1_stuff=$(echo $json | jq -r .[].outputs.stuff)
|
||||||
|
|
Loading…
Reference in a new issue