diff options
author | Gergely Risko <errge@nilcons.com> | 2014-08-27 16:46:02 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-08-28 18:23:55 +0200 |
commit | fd61069a42289da195532bf68d15dc695cca7236 (patch) | |
tree | c0bc88b587aa590d7cdd58146e63af663e1917cf /tests | |
parent | 3f0a4bf0e7254edddaa864d23893d98da23c2977 (diff) |
Introduce allowedRequisites feature
Diffstat (limited to 'tests')
-rw-r--r-- | tests/check-reqs.nix | 43 | ||||
-rw-r--r-- | tests/check-reqs.sh | 12 | ||||
-rw-r--r-- | tests/local.mk | 3 |
3 files changed, 57 insertions, 1 deletions
diff --git a/tests/check-reqs.nix b/tests/check-reqs.nix new file mode 100644 index 000000000..5af8ea6fa --- /dev/null +++ b/tests/check-reqs.nix @@ -0,0 +1,43 @@ +with import ./config.nix; + +rec { + dep1 = mkDerivation { + name = "check-reqs-dep1"; + builder = builtins.toFile "builder.sh" "mkdir $out; touch $out/file1"; + }; + + dep2 = mkDerivation { + name = "check-reqs-dep2"; + builder = builtins.toFile "builder.sh" "mkdir $out; touch $out/file2"; + }; + + deps = mkDerivation { + name = "check-reqs-deps"; + dep1 = dep1; + dep2 = dep2; + builder = builtins.toFile "builder.sh" '' + mkdir $out + ln -s $dep1/file1 $out/file1 + ln -s $dep2/file2 $out/file2 + ''; + }; + + makeTest = nr: allowreqs: mkDerivation { + name = "check-reqs-" + toString nr; + inherit deps; + builder = builtins.toFile "builder.sh" '' + mkdir $out + ln -s $deps $out/depdir1 + ''; + allowedRequisites = allowreqs; + }; + + # When specifying all the requisites, the build succeeds. + test1 = makeTest 1 [ dep1 dep2 deps ]; + + # But missing anything it fails. + test2 = makeTest 2 [ dep2 deps ]; + test3 = makeTest 3 [ dep1 deps ]; + test4 = makeTest 4 [ deps ]; + test5 = makeTest 5 []; +} diff --git a/tests/check-reqs.sh b/tests/check-reqs.sh new file mode 100644 index 000000000..643c2d0cd --- /dev/null +++ b/tests/check-reqs.sh @@ -0,0 +1,12 @@ +source common.sh + +RESULT=$TEST_ROOT/result + +# test1 should succeed. +nix-build -o $RESULT check-reqs.nix -A test1 + +# test{2,3,4,5} should fail. +(! nix-build -o $RESULT check-reqs.nix -A test2) +(! nix-build -o $RESULT check-reqs.nix -A test3) +(! nix-build -o $RESULT check-reqs.nix -A test4) +(! nix-build -o $RESULT check-reqs.nix -A test5) diff --git a/tests/local.mk b/tests/local.mk index 65aa12637..69a227495 100644 --- a/tests/local.mk +++ b/tests/local.mk @@ -10,7 +10,8 @@ nix_tests = \ remote-store.sh export.sh export-graph.sh negative-caching.sh \ binary-patching.sh timeout.sh secure-drv-outputs.sh nix-channel.sh \ multiple-outputs.sh import-derivation.sh fetchurl.sh optimise-store.sh \ - binary-cache.sh nix-profile.sh repair.sh dump-db.sh case-hack.sh + binary-cache.sh nix-profile.sh repair.sh dump-db.sh case-hack.sh \ + check-reqs.sh # parallel.sh install-tests += $(foreach x, $(nix_tests), tests/$(x)) |