From 5dec93bb8ba89605bce2f9a5ee9c4dbadeee3b58 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 8 Sep 2018 22:56:40 +0200 Subject: gexp: 'file-union' accepts directory names. * guix/gexp.scm (file-union): Import (guix build utils). Make the parent directories of TARGET. * tests/gexp.scm ("file-union"): New test. --- tests/gexp.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'tests') diff --git a/tests/gexp.scm b/tests/gexp.scm index b22e635805..5d049cd5fc 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -1093,6 +1093,24 @@ (call-with-input-file out get-string-all)) (equal? refs (list guile)))))))) +(test-assertm "file-union" + (mlet* %store-monad ((union -> (file-union "union" + `(("a" ,(plain-file "a" "1")) + ("b/c/d" ,(plain-file "d" "2")) + ("e" ,(plain-file "e" "3"))))) + (drv (lower-object union)) + (out -> (derivation->output-path drv))) + (define (contents=? file str) + (string=? (call-with-input-file (string-append out "/" file) + get-string-all) + str)) + + (mbegin %store-monad + (built-derivations (list drv)) + (return (and (contents=? "a" "1") + (contents=? "b/c/d" "2") + (contents=? "e" "3")))))) + (test-assert "gexp->derivation vs. %current-target-system" (let ((mval (gexp->derivation "foo" #~(begin -- cgit v1.2.3