diff options
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rw-r--r-- | tests/hash-check.nix | 29 | ||||
-rw-r--r-- | tests/simple.sh | 4 |
3 files changed, 34 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 9a718f190707..b04f725c1bf0 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -27,6 +27,7 @@ $(TESTS): common.sh EXTRA_DIST = $(TESTS) \ simple.nix.in simple.builder.sh \ + hash-check.nix.in \ dependencies.nix.in dependencies.builder*.sh \ locking.nix.in locking.builder.sh \ parallel.nix.in parallel.builder.sh \ diff --git a/tests/hash-check.nix b/tests/hash-check.nix new file mode 100644 index 000000000000..bbe4fe24791f --- /dev/null +++ b/tests/hash-check.nix @@ -0,0 +1,29 @@ +let { + + input1 = derivation { + name = "dependencies-input-1"; + system = "i086-msdos"; + builder = "/bar/sh"; + args = ["-e" "-x" ./dependencies.builder1.sh]; + }; + + input2 = derivation { + name = "dependencies-input-2"; + system = "i086-msdos"; + builder = "/bar/sh"; + args = ["-e" "-x" ./dependencies.builder2.sh]; + outputHashMode = "recursive"; + outputHashAlgo = "md5"; + outputHash = "ffffffffffffffffffffffffffffffff"; + }; + + body = derivation { + name = "dependencies"; + system = "i086-msdos"; + builder = "/bar/sh"; + args = ["-e" "-x" (./dependencies.builder0.sh + "/FOOBAR/../.")]; + input1 = input1 + "/."; + inherit input2; + }; + +} \ No newline at end of file diff --git a/tests/simple.sh b/tests/simple.sh index 7f7b48f2d91b..4d3377b29f39 100644 --- a/tests/simple.sh +++ b/tests/simple.sh @@ -17,3 +17,7 @@ if test "$text" != "Hello World!"; then exit 1; fi # be deleteable. $nixstore --delete $outPath if test -e $outPath/hello; then false; fi + +if test "$(NIX_STORE_DIR=/foo $nixinstantiate --readonly-mode hash-check.nix)" != "/foo/4hgkkq63lp8x5kmh9cmsyqimq5v42zzl-dependencies.drv"; then + echo "hashDerivationModulo appears broken" +fi |