summaryrefslogtreecommitdiff
path: root/tests/derivations.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2012-12-04 23:46:50 +0100
committerLudovic Courtès <ludo@gnu.org>2012-12-04 23:46:50 +0100
commit860a6f1ae06151d76d39a402d3d92cc7ea6f36ff (patch)
treebf3ec8471c0f1c8453209c3cc7c3668a1cd99767 /tests/derivations.scm
parent3036a01ff7dbf618a0012cea8de85820962f7b8e (diff)
downloadpatches-860a6f1ae06151d76d39a402d3d92cc7ea6f36ff.tar
patches-860a6f1ae06151d76d39a402d3d92cc7ea6f36ff.tar.gz
derivations: Fix erroneous call to `add-to-store' for local files as input.
* guix/derivations.scm (derivation)[inputs]: Fix typo in call to `add-to-store'. * tests/derivations.scm ("derivation with local file as input"): New test. * tests/packages.scm ("trivial with local file as input"): New test.
Diffstat (limited to 'tests/derivations.scm')
-rw-r--r--tests/derivations.scm23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/derivations.scm b/tests/derivations.scm
index bcedfbf948..14e1863a12 100644
--- a/tests/derivations.scm
+++ b/tests/derivations.scm
@@ -124,6 +124,29 @@
(string=? (call-with-input-file path read-line)
"hello, world"))))))
+(test-assert "derivation with local file as input"
+ (let* ((builder (add-text-to-store
+ %store "my-builder.sh"
+ "(while read line ; do echo $line ; done) < $in > $out"
+ '()))
+ (input (search-path %load-path "ice-9/boot-9.scm"))
+ (drv-path (derivation %store "derivation-with-input-file"
+ (%current-system)
+ "/bin/sh" `(,builder)
+ `(("in"
+ ;; Cheat to pass the actual file
+ ;; name to the builder.
+ . ,(add-to-store %store
+ (basename input)
+ #t #t "sha256"
+ input)))
+ `((,builder)
+ (,input))))) ; ← local file name
+ (and (build-derivations %store (list drv-path))
+ (let ((p (derivation-path->output-path drv-path)))
+ (and (call-with-input-file p get-bytevector-all)
+ (call-with-input-file input get-bytevector-all))))))
+
(test-assert "fixed-output derivation"
(let* ((builder (add-text-to-store %store "my-fixed-builder.sh"
"echo -n hello > $out" '()))