From fb3eec8301e3f41f14a51a114cff88dc0e24cfc2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 5 Jun 2012 00:04:07 +0200 Subject: Test the `build-derivations' operation. * guix/derivations.scm (derivation): Return DRV as a second value. * tests/derivations.scm ("build derivation with 1 source"): New test. --- tests/derivations.scm | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'tests/derivations.scm') diff --git a/tests/derivations.scm b/tests/derivations.scm index c3aba3f12b..c9b5db2311 100644 --- a/tests/derivations.scm +++ b/tests/derivations.scm @@ -20,9 +20,11 @@ (define-module (test-derivations) #:use-module (guix derivations) #:use-module (guix store) + #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) #:use-module (srfi srfi-64) - #:use-module (rnrs io ports)) + #:use-module (rnrs io ports) + #:use-module (ice-9 rdelim)) (define %store (false-if-exception (open-connection))) @@ -37,7 +39,7 @@ (define %store (and (equal? b1 b2) (equal? d1 d2)))) -(test-skip (if %store 0 1)) +(test-skip (if %store 0 2)) (test-assert "derivation with no inputs" (let ((builder (add-text-to-store %store "my-builder.sh" @@ -46,6 +48,24 @@ (define %store (store-path? (derivation %store "foo" "x86_64-linux" builder '() '(("HOME" . "/homeless")) '())))) +(test-assert "build derivation with 1 source" + (let*-values (((builder) + (add-text-to-store %store "my-builder.sh" + "#!/bin/sh\necho hello, world > \"$out\"\n" + '())) + ((drv-path drv) + (derivation %store "foo" "x86_64-linux" + "/bin/sh" `(,builder) + '(("HOME" . "/homeless")) + `((,builder)))) + ((succeeded?) + (build-derivations %store (list drv-path)))) + (and succeeded? + (let ((path (derivation-output-path + (assoc-ref (derivation-outputs drv) "out")))) + (string=? (call-with-input-file path read-line) + "hello, world"))))) + (test-end) -- cgit v1.2.3