aboutsummaryrefslogtreecommitdiff
path: root/tests/derivations.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/derivations.scm')
-rw-r--r--tests/derivations.scm32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/derivations.scm b/tests/derivations.scm
index f2a3bb2d55..ff766cf175 100644
--- a/tests/derivations.scm
+++ b/tests/derivations.scm
@@ -94,6 +94,38 @@
(let ((p (derivation-path->output-path drv-path)))
(file-exists? (string-append p "/good"))))))
+(test-skip (if (%guile-for-build) 0 2))
+
+(test-assert "build-expression->derivation without inputs"
+ (let* ((builder '(begin
+ (mkdir %output)
+ (call-with-output-file (string-append %output "/test")
+ (lambda (p)
+ (display '(hello guix) p)))))
+ (drv-path (build-expression->derivation %store "goo" "x86_64-linux"
+ builder '()))
+ (succeeded? (build-derivations %store (list drv-path))))
+ (and succeeded?
+ (let ((p (derivation-path->output-path drv-path)))
+ (equal? '(hello guix)
+ (call-with-input-file (string-append p "/test") read))))))
+
+(test-assert "build-expression->derivation with one input"
+ (let* ((builder '(call-with-output-file %output
+ (lambda (p)
+ (let ((cu (assoc-ref %build-inputs "cu")))
+ (close 1)
+ (dup2 (port->fdes p) 1)
+ (execl (string-append cu "/bin/uname")
+ "uname" "-a")))))
+ (drv-path (build-expression->derivation %store "uname" "x86_64-linux"
+ builder
+ `(("cu" . ,%coreutils))))
+ (succeeded? (build-derivations %store (list drv-path))))
+ (and succeeded?
+ (let ((p (derivation-path->output-path drv-path)))
+ (string-contains (call-with-input-file p read-line) "GNU")))))
+
(test-end)