aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2009-03-17 17:38:32 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2009-03-17 17:38:32 +0000
commit93b6926054b0b339d310a3075a677a65676c7c11 (patch)
tree50de8a47acee0db3fe1a996cee669b0d5bb05a45
parent51e7e32c3bf7c2fb5045b0655c2edc1fbf347455 (diff)
* Regression test for exportBuildReferencesGraph. It currently fails.
-rw-r--r--tests/common.sh.in5
-rw-r--r--tests/export-graph.nix14
-rw-r--r--tests/export-graph.sh21
3 files changed, 34 insertions, 6 deletions
diff --git a/tests/common.sh.in b/tests/common.sh.in
index 5865cf1d6..08faeea71 100644
--- a/tests/common.sh.in
+++ b/tests/common.sh.in
@@ -76,3 +76,8 @@ clearProfiles() {
clearManifests() {
rm -f $NIX_STATE_DIR/manifests/*
}
+
+fail() {
+ echo "$1"
+ exit 1
+}
diff --git a/tests/export-graph.nix b/tests/export-graph.nix
index b7afa2a85..d65ad8c14 100644
--- a/tests/export-graph.nix
+++ b/tests/export-graph.nix
@@ -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];
+ };
+
}
diff --git a/tests/export-graph.sh b/tests/export-graph.sh
index f31bc75ab..5cba57f99 100644
--- a/tests/export-graph.sh
+++ b/tests/export-graph.sh
@@ -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