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.
This commit is contained in:
Ludovic Courtès 2019-09-18 15:11:40 +02:00
parent f9c0400392
commit 96b35998e6
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 34 additions and 5 deletions

View file

@ -257,11 +257,13 @@ (define items
(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))))))))))))

View file

@ -269,4 +269,31 @@ (define requisites*
(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)