From d9085c23c4503347366e54707e80025ca4526941 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 8 Jun 2012 21:31:01 +0200 Subject: Add `build-expression->derivation'. * guix/derivations.scm (%guile-for-build): New parameter. (build-expression->derivation): New procedure. * tests/derivations.scm ("build-expression->derivation without inputs", "build-expression->derivation with one input"): New tests. --- tests/derivations.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'tests/derivations.scm') 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 @@ (define %coreutils (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) -- cgit v1.2.3