* Regression test for exportBuildReferencesGraph. It currently fails.

This commit is contained in:
Eelco Dolstra 2009-03-17 17:38:32 +00:00
parent 51e7e32c3b
commit 93b6926054
3 changed files with 34 additions and 6 deletions

View file

@ -76,3 +76,8 @@ clearProfiles() {
clearManifests() { clearManifests() {
rm -f $NIX_STATE_DIR/manifests/* rm -f $NIX_STATE_DIR/manifests/*
} }
fail() {
echo "$1"
exit 1
}

View file

@ -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];
};
} }

View file

@ -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