* 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() {
rm -f $NIX_STATE_DIR/manifests/*
}
fail() {
echo "$1"
exit 1
}

View file

@ -2,21 +2,27 @@ with import ./config.nix;
rec {
buildGraphBuilder = builtins.toFile "build-graph-builder"
printRefs =
''
while read path; do
read drv
read nrRefs
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
done < refs
'';
buildGraph = mkDerivation {
runtimeGraph = mkDerivation {
name = "dependencies";
builder = buildGraphBuilder;
builder = builtins.toFile "build-graph-builder" "${printRefs}";
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
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"
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