diff options
author | Marius Bakke <mbakke@fastmail.com> | 2019-07-22 18:58:48 +0200 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2019-07-22 18:58:48 +0200 |
commit | ccad0e4d6973da7af8badfb7125f35f7e51eb2d7 (patch) | |
tree | 15ff9da1c1c03b088d0ad9240f2c1878f5da5802 /tests/containers.scm | |
parent | d478cc043557ca3fcd5fced87d2e2c8e246eff03 (diff) | |
parent | 26986544469ef290885f5f8d71006751e9e8daf8 (diff) | |
download | guix-patches-ccad0e4d6973da7af8badfb7125f35f7e51eb2d7.tar guix-patches-ccad0e4d6973da7af8badfb7125f35f7e51eb2d7.tar.gz |
Merge branch 'master' into core-updates
Diffstat (limited to 'tests/containers.scm')
-rw-r--r-- | tests/containers.scm | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/containers.scm b/tests/containers.scm index 37408f380d..c6c738f234 100644 --- a/tests/containers.scm +++ b/tests/containers.scm @@ -21,7 +21,15 @@ #:use-module (guix utils) #:use-module (guix build syscalls) #:use-module (gnu build linux-container) + #:use-module ((gnu system linux-container) + #:select (eval/container)) #:use-module (gnu system file-systems) + #:use-module (guix store) + #:use-module (guix monads) + #:use-module (guix gexp) + #:use-module (guix derivations) + #:use-module (guix tests) + #:use-module (srfi srfi-1) #:use-module (srfi srfi-64) #:use-module (ice-9 match)) @@ -219,4 +227,46 @@ (lambda () (* 6 7)))) +(skip-if-unsupported) +(test-equal "eval/container, exit status" + 42 + (let* ((store (open-connection-for-tests)) + (status (run-with-store store + (eval/container #~(exit 42))))) + (close-connection store) + (status:exit-val status))) + +(skip-if-unsupported) +(test-assert "eval/container, writable user mapping" + (call-with-temporary-directory + (lambda (directory) + (define store + (open-connection-for-tests)) + (define result + (string-append directory "/r")) + (define requisites* + (store-lift requisites)) + + (call-with-output-file result (const #t)) + (run-with-store store + (mlet %store-monad ((status (eval/container + #~(begin + (use-modules (ice-9 ftw)) + (call-with-output-file "/result" + (lambda (port) + (write (scandir #$(%store-prefix)) + port)))) + #:mappings + (list (file-system-mapping + (source result) + (target "/result") + (writable? #t))))) + (reqs (requisites* + (list (derivation->output-path + (%guile-for-build)))))) + (close-connection store) + (return (and (zero? (pk 'status status)) + (lset= string=? (cons* "." ".." (map basename reqs)) + (pk (call-with-input-file result read)))))))))) + (test-end) |