mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-05-27 19:41:50 +02:00
gexp: Implement 'imported-modules' & co. using 'gexp->derivation'.
* guix/derivations.scm (imported-files): Keep private.
(%imported-modules, %compiled-modules, build-expression->derivation):
Mark as deprecated.
(imported-modules, compiled-modules): Remove.
* guix/gexp.scm (%mkdir-p-definition): New variable.
(imported-files, search-path*, imported-modules, compiled-modules):
New procedures.
* tests/derivations.scm ("imported-files"): Remove.
* tests/gexp.scm ("imported-files", "gexp->derivation #:modules"): New
tests.
This commit is contained in:
@@ -360,6 +360,40 @@
|
||||
(string=? (readlink (string-append out "/" two "/one"))
|
||||
one)))))))
|
||||
|
||||
(test-assertm "imported-files"
|
||||
(mlet* %store-monad
|
||||
((files -> `(("x" . ,(search-path %load-path "ice-9/q.scm"))
|
||||
("a/b/c" . ,(search-path %load-path
|
||||
"guix/derivations.scm"))
|
||||
("p/q" . ,(search-path %load-path "guix.scm"))
|
||||
("p/z" . ,(search-path %load-path "guix/store.scm"))))
|
||||
(drv (imported-files files)))
|
||||
(mbegin %store-monad
|
||||
(built-derivations (list drv))
|
||||
(let ((dir (derivation->output-path drv)))
|
||||
(return
|
||||
(every (match-lambda
|
||||
((path . source)
|
||||
(equal? (call-with-input-file (string-append dir "/" path)
|
||||
get-bytevector-all)
|
||||
(call-with-input-file source
|
||||
get-bytevector-all))))
|
||||
files))))))
|
||||
|
||||
(test-assertm "gexp->derivation #:modules"
|
||||
(mlet* %store-monad
|
||||
((build -> #~(begin
|
||||
(use-modules (guix build utils))
|
||||
(mkdir-p (string-append #$output "/guile/guix/nix"))
|
||||
#t))
|
||||
(drv (gexp->derivation "test-with-modules" build
|
||||
#:modules '((guix build utils)))))
|
||||
(mbegin %store-monad
|
||||
(built-derivations (list drv))
|
||||
(let* ((p (derivation->output-path drv))
|
||||
(s (stat (string-append p "/guile/guix/nix"))))
|
||||
(return (eq? (stat:type s) 'directory))))))
|
||||
|
||||
(test-assertm "gexp->derivation #:references-graphs"
|
||||
(mlet* %store-monad
|
||||
((one (text-file "one" "hello, world"))
|
||||
|
||||
Reference in New Issue
Block a user