* Regression test for exportBuildReferencesGraph. It currently fails.
This commit is contained in:
parent
51e7e32c3b
commit
93b6926054
3 changed files with 34 additions and 6 deletions
|
@ -76,3 +76,8 @@ clearProfiles() {
|
||||||
clearManifests() {
|
clearManifests() {
|
||||||
rm -f $NIX_STATE_DIR/manifests/*
|
rm -f $NIX_STATE_DIR/manifests/*
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fail() {
|
||||||
|
echo "$1"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
|
@ -2,21 +2,27 @@ with import ./config.nix;
|
||||||
|
|
||||||
rec {
|
rec {
|
||||||
|
|
||||||
buildGraphBuilder = builtins.toFile "build-graph-builder"
|
printRefs =
|
||||||
''
|
''
|
||||||
while read path; do
|
while read path; do
|
||||||
read drv
|
read drv
|
||||||
read nrRefs
|
read nrRefs
|
||||||
echo "$path has $nrRefs references"
|
echo "$path has $nrRefs references"
|
||||||
echo -n "$path" >> $out
|
echo "$path" >> $out
|
||||||
for ((n = 0; n < $nrRefs; n++)); do read ref; echo "ref $ref"; done
|
for ((n = 0; n < $nrRefs; n++)); do read ref; echo "ref $ref"; done
|
||||||
done < refs
|
done < refs
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildGraph = mkDerivation {
|
runtimeGraph = mkDerivation {
|
||||||
name = "dependencies";
|
name = "dependencies";
|
||||||
builder = buildGraphBuilder;
|
builder = builtins.toFile "build-graph-builder" "${printRefs}";
|
||||||
exportReferencesGraph = ["refs" (import ./dependencies.nix)];
|
exportReferencesGraph = ["refs" (import ./dependencies.nix)];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
buildGraph = mkDerivation {
|
||||||
|
name = "dependencies";
|
||||||
|
builder = builtins.toFile "build-graph-builder" "${printRefs}";
|
||||||
|
exportBuildReferencesGraph = ["refs" (import ./dependencies.nix).drvPath];
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,24 @@ source common.sh
|
||||||
clearStore
|
clearStore
|
||||||
clearProfiles
|
clearProfiles
|
||||||
|
|
||||||
outPath=$($nixbuild ./export-graph.nix)
|
checkRef() {
|
||||||
|
nix-store -q --references ./result | grep -q "$1" || fail "missing reference $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test the export of the runtime dependency graph.
|
||||||
|
|
||||||
|
outPath=$($nixbuild ./export-graph.nix -A runtimeGraph)
|
||||||
|
|
||||||
test $(nix-store -q --references ./result | wc -l) = 2 || fail "bad nr of references"
|
test $(nix-store -q --references ./result | wc -l) = 2 || fail "bad nr of references"
|
||||||
nix-store -q --references ./result | grep -q input-2 || fail "missing reference"
|
|
||||||
|
checkRef input-2
|
||||||
|
for i in $(cat $outPath); do checkRef $i; done
|
||||||
|
|
||||||
|
# Test the export of the build-time dependency graph.
|
||||||
|
|
||||||
|
outPath=$($nixbuild ./export-graph.nix -A buildGraph)
|
||||||
|
|
||||||
|
checkRef input-1
|
||||||
|
checkRef input-2
|
||||||
|
|
||||||
|
for i in $(cat $outPath); do checkRef $i; done
|
||||||
|
|
Loading…
Reference in a new issue