aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2020-05-12 13:49:55 +0200
committerEelco Dolstra <edolstra@gmail.com>2020-05-12 13:56:00 +0200
commit5722f9690c39d136ffbf452f3b85df09e8127712 (patch)
tree071fd202bfd56bf15b0c2a1ee8f94f8f9669b4ec /tests
parent5bdb67c84308a8cc78ac633d27b94eca87ea4390 (diff)
tests/binary-cache.sh: Improve incomplete closure test
Issue #3373.
Diffstat (limited to 'tests')
-rw-r--r--tests/binary-cache.sh18
-rw-r--r--tests/build-hook.nix4
-rw-r--r--tests/build-remote.sh4
-rw-r--r--tests/config.nix.in2
-rw-r--r--tests/dependencies.builder1.sh2
-rw-r--r--tests/dependencies.builder2.sh2
-rw-r--r--tests/dependencies.nix15
-rw-r--r--tests/dependencies.sh2
-rw-r--r--tests/export-graph.sh2
-rw-r--r--tests/gc-concurrent.nix6
-rw-r--r--tests/nix-channel.sh8
11 files changed, 42 insertions, 23 deletions
diff --git a/tests/binary-cache.sh b/tests/binary-cache.sh
index a3c3c7847..17b63d978 100644
--- a/tests/binary-cache.sh
+++ b/tests/binary-cache.sh
@@ -105,10 +105,24 @@ mv $cacheDir/nar2 $cacheDir/nar
# incomplete closure.
clearStore
-rm $(grep -l "StorePath:.*dependencies-input-2" $cacheDir/*.narinfo)
+rm -v $(grep -l "StorePath:.*dependencies-input-2" $cacheDir/*.narinfo)
nix-build --substituters "file://$cacheDir" --no-require-sigs dependencies.nix -o $TEST_ROOT/result 2>&1 | tee $TEST_ROOT/log
-grep -q "copying path" $TEST_ROOT/log
+grep -q "copying path.*input-0" $TEST_ROOT/log
+grep -q "copying path.*input-2" $TEST_ROOT/log
+grep -q "copying path.*top" $TEST_ROOT/log
+
+
+# Idem, but without cached .narinfo.
+clearStore
+clearCacheCache
+
+nix-build --substituters "file://$cacheDir" --no-require-sigs dependencies.nix -o $TEST_ROOT/result 2>&1 | tee $TEST_ROOT/log
+grep -q "don't know how to build" $TEST_ROOT/log
+grep -q "building.*input-1" $TEST_ROOT/log
+grep -q "building.*input-2" $TEST_ROOT/log
+grep -q "copying path.*input-0" $TEST_ROOT/log
+grep -q "copying path.*top" $TEST_ROOT/log
if [ -n "$HAVE_SODIUM" ]; then
diff --git a/tests/build-hook.nix b/tests/build-hook.nix
index 8bff0fe79..8c5ca8cd3 100644
--- a/tests/build-hook.nix
+++ b/tests/build-hook.nix
@@ -4,13 +4,13 @@ let
input1 = mkDerivation {
name = "build-hook-input-1";
- builder = ./dependencies.builder1.sh;
+ buildCommand = "mkdir $out; echo FOO > $out/foo";
requiredSystemFeatures = ["foo"];
};
input2 = mkDerivation {
name = "build-hook-input-2";
- builder = ./dependencies.builder2.sh;
+ buildCommand = "mkdir $out; echo BAR > $out/bar";
};
in
diff --git a/tests/build-remote.sh b/tests/build-remote.sh
index ddd68f327..a550f4460 100644
--- a/tests/build-remote.sh
+++ b/tests/build-remote.sh
@@ -20,5 +20,5 @@ cat $outPath/foobar | grep FOOBAR
# Ensure that input1 was built on store1 due to the required feature.
p=$(readlink -f $outPath/input-2)
-(! nix path-info --store $TEST_ROOT/store0 --all | grep dependencies.builder1.sh)
-nix path-info --store $TEST_ROOT/store1 --all | grep dependencies.builder1.sh
+(! nix path-info --store $TEST_ROOT/store0 --all | grep builder-build-hook-input-1.sh)
+nix path-info --store $TEST_ROOT/store1 --all | grep builder-build-hook-input-1.sh
diff --git a/tests/config.nix.in b/tests/config.nix.in
index 0ec2eba6b..a57a8c596 100644
--- a/tests/config.nix.in
+++ b/tests/config.nix.in
@@ -11,7 +11,7 @@ rec {
derivation ({
inherit system;
builder = shell;
- args = ["-e" args.builder or (builtins.toFile "builder.sh" "if [ -e .attrs.sh ]; then source .attrs.sh; fi; eval \"$buildCommand\"")];
+ args = ["-e" args.builder or (builtins.toFile "builder-${args.name}.sh" "if [ -e .attrs.sh ]; then source .attrs.sh; fi; eval \"$buildCommand\"")];
PATH = path;
} // removeAttrs args ["builder" "meta"])
// { meta = args.meta or {}; };
diff --git a/tests/dependencies.builder1.sh b/tests/dependencies.builder1.sh
deleted file mode 100644
index 4b006a17d..000000000
--- a/tests/dependencies.builder1.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-mkdir $out
-echo FOO > $out/foo
diff --git a/tests/dependencies.builder2.sh b/tests/dependencies.builder2.sh
deleted file mode 100644
index 4f886fdb3..000000000
--- a/tests/dependencies.builder2.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-mkdir $out
-echo BAR > $out/bar
diff --git a/tests/dependencies.nix b/tests/dependencies.nix
index eca4b2964..e320d81c9 100644
--- a/tests/dependencies.nix
+++ b/tests/dependencies.nix
@@ -2,18 +2,27 @@ with import ./config.nix;
let {
+ input0 = mkDerivation {
+ name = "dependencies-input-0";
+ buildCommand = "mkdir $out; echo foo > $out/bar";
+ };
+
input1 = mkDerivation {
name = "dependencies-input-1";
- builder = ./dependencies.builder1.sh;
+ buildCommand = "mkdir $out; echo FOO > $out/foo";
};
input2 = mkDerivation {
name = "dependencies-input-2";
- builder = "${./dependencies.builder2.sh}";
+ buildCommand = ''
+ mkdir $out
+ echo BAR > $out/bar
+ echo ${input0} > $out/input0
+ '';
};
body = mkDerivation {
- name = "dependencies";
+ name = "dependencies-top";
builder = ./dependencies.builder0.sh + "/FOOBAR/../.";
input1 = input1 + "/.";
input2 = "${input2}/.";
diff --git a/tests/dependencies.sh b/tests/dependencies.sh
index 8d0fdc10f..092950aa7 100644
--- a/tests/dependencies.sh
+++ b/tests/dependencies.sh
@@ -6,7 +6,7 @@ drvPath=$(nix-instantiate dependencies.nix)
echo "derivation is $drvPath"
-nix-store -q --tree "$drvPath" | grep '───.*builder1.sh'
+nix-store -q --tree "$drvPath" | grep '───.*builder-dependencies-input-1.sh'
# Test Graphviz graph generation.
nix-store -q --graph "$drvPath" > $TEST_ROOT/graph
diff --git a/tests/export-graph.sh b/tests/export-graph.sh
index a6fd69054..a1449b34e 100644
--- a/tests/export-graph.sh
+++ b/tests/export-graph.sh
@@ -11,7 +11,7 @@ checkRef() {
outPath=$(nix-build ./export-graph.nix -A 'foo."bar.runtimeGraph"' -o $TEST_ROOT/result)
-test $(nix-store -q --references $TEST_ROOT/result | wc -l) = 2 || fail "bad nr of references"
+test $(nix-store -q --references $TEST_ROOT/result | wc -l) = 3 || fail "bad nr of references"
checkRef input-2
for i in $(cat $outPath); do checkRef $i; done
diff --git a/tests/gc-concurrent.nix b/tests/gc-concurrent.nix
index c0595cc47..21671ea2c 100644
--- a/tests/gc-concurrent.nix
+++ b/tests/gc-concurrent.nix
@@ -4,12 +4,12 @@ rec {
input1 = mkDerivation {
name = "dependencies-input-1";
- builder = ./dependencies.builder1.sh;
+ buildCommand = "mkdir $out; echo FOO > $out/foo";
};
input2 = mkDerivation {
name = "dependencies-input-2";
- builder = ./dependencies.builder2.sh;
+ buildCommand = "mkdir $out; echo BAR > $out/bar";
};
test1 = mkDerivation {
@@ -23,5 +23,5 @@ rec {
builder = ./gc-concurrent2.builder.sh;
inherit input1 input2;
};
-
+
}
diff --git a/tests/nix-channel.sh b/tests/nix-channel.sh
index 93f837bef..49c68981a 100644
--- a/tests/nix-channel.sh
+++ b/tests/nix-channel.sh
@@ -32,10 +32,10 @@ if [ "$xmllint" != false ]; then
$xmllint --noout $TEST_ROOT/meta.xml || fail "malformed XML"
fi
grep -q 'meta.*description.*Random test package' $TEST_ROOT/meta.xml
-grep -q 'item.*attrPath="foo".*name="dependencies"' $TEST_ROOT/meta.xml
+grep -q 'item.*attrPath="foo".*name="dependencies-top"' $TEST_ROOT/meta.xml
# Do an install.
-nix-env -i dependencies
+nix-env -i dependencies-top
[ -e $TEST_HOME/.nix-profile/foobar ]
clearProfiles
@@ -51,9 +51,9 @@ if [ "$xmllint" != false ]; then
$xmllint --noout $TEST_ROOT/meta.xml || fail "malformed XML"
fi
grep -q 'meta.*description.*Random test package' $TEST_ROOT/meta.xml
-grep -q 'item.*attrPath="foo".*name="dependencies"' $TEST_ROOT/meta.xml
+grep -q 'item.*attrPath="foo".*name="dependencies-top"' $TEST_ROOT/meta.xml
# Do an install.
-nix-env -i dependencies
+nix-env -i dependencies-top
[ -e $TEST_HOME/.nix-profile/foobar ]