diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-09-18 15:11:40 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-09-18 23:08:28 +0200 |
commit | 96b35998e610c7fc37bf87bf9e07e63d3bebd0a3 (patch) | |
tree | fb1b2a5796de007812415e7104ae326451e057ca | |
parent | f9c0400392843540a87985a67ffb9fb6e4dbc2fa (diff) | |
download | patches-96b35998e610c7fc37bf87bf9e07e63d3bebd0a3.tar patches-96b35998e610c7fc37bf87bf9e07e63d3bebd0a3.tar.gz |
linux-container: 'eval/container' correctly passes -L and -C flags.
This fixes a type error.
* gnu/system/linux-container.scm (eval/container): Use 'append-map', not
'map'.
* tests/containers.scm ("eval/container, non-empty load path"): New test.
-rw-r--r-- | gnu/system/linux-container.scm | 12 | ||||
-rw-r--r-- | tests/containers.scm | 27 |
2 files changed, 34 insertions, 5 deletions
diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm index c6124cd223..2ab679ff3f 100644 --- a/gnu/system/linux-container.scm +++ b/gnu/system/linux-container.scm @@ -257,11 +257,13 @@ effects." (lowered-gexp-guile lowered)) "/bin/guile") "guile" - (append (map (lambda (directory) `("-L" ,directory)) - (lowered-gexp-load-path lowered)) - (map (lambda (directory) `("-C" ,directory)) - (lowered-gexp-load-compiled-path - lowered)) + (append (append-map (lambda (directory) + `("-L" ,directory)) + (lowered-gexp-load-path lowered)) + (append-map (lambda (directory) + `("-C" ,directory)) + (lowered-gexp-load-compiled-path + lowered)) (list "-c" (object->string (lowered-gexp-sexp lowered)))))))))))) diff --git a/tests/containers.scm b/tests/containers.scm index c6c738f234..01fbcbb45a 100644 --- a/tests/containers.scm +++ b/tests/containers.scm @@ -269,4 +269,31 @@ (lset= string=? (cons* "." ".." (map basename reqs)) (pk (call-with-input-file result read)))))))))) +(test-assert "eval/container, non-empty load path" + (call-with-temporary-directory + (lambda (directory) + (define store + (open-connection-for-tests)) + (define result + (string-append directory "/r")) + (define requisites* + (store-lift requisites)) + + (mkdir result) + (run-with-store store + (mlet %store-monad ((status (eval/container + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (mkdir-p "/result/a/b/c"))) + #:mappings + (list (file-system-mapping + (source result) + (target "/result") + (writable? #t)))))) + (close-connection store) + (return (and (zero? status) + (file-is-directory? + (string-append result "/a/b/c"))))))))) + (test-end) |