diff options
| author | David Thompson <davet@gnu.org> | 2015-06-08 08:43:05 -0400 |
|---|---|---|
| committer | David Thompson <dthompson2@worcester.edu> | 2015-07-07 20:55:09 -0400 |
| commit | 43ace6ea76b0cb4e2ba3f6486acba7dc66e2f19d (patch) | |
| tree | 5062859668bf8e9dcbbb392526d11f4a32d30996 /tests | |
| parent | 8950ed11c6a0d51be056b3509f3ab269787696e9 (diff) | |
build: syscalls: Add setns.
* guix/build/syscalls.scm (setns): New procedure.
* tests/syscalls.scm ("setns"): New test.
squash: setns
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/syscalls.scm | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/syscalls.scm b/tests/syscalls.scm index 4bc6f0332ce..9b8ac9e6033 100644 --- a/tests/syscalls.scm +++ b/tests/syscalls.scm | |||
| @@ -90,6 +90,32 @@ | |||
| 90 | ((_ . status) | 90 | ((_ . status) |
| 91 | (= 42 (status:exit-val status)))))))) | 91 | (= 42 (status:exit-val status)))))))) |
| 92 | 92 | ||
| 93 | (test-assert "setns" | ||
| 94 | (match (clone (logior CLONE_NEWUSER SIGCHLD)) | ||
| 95 | (0 (primitive-exit 0)) | ||
| 96 | (clone-pid | ||
| 97 | (match (pipe) | ||
| 98 | ((in . out) | ||
| 99 | (match (primitive-fork) | ||
| 100 | (0 | ||
| 101 | (close in) | ||
| 102 | ;; Join the user namespace. | ||
| 103 | (call-with-input-file (user-namespace clone-pid) | ||
| 104 | (lambda (port) | ||
| 105 | (setns (port->fdes port) 0))) | ||
| 106 | (write 'done out) | ||
| 107 | (close out) | ||
| 108 | (primitive-exit 0)) | ||
| 109 | (fork-pid | ||
| 110 | (close out) | ||
| 111 | ;; Wait for the child process to join the namespace. | ||
| 112 | (read in) | ||
| 113 | (let ((result (and (equal? (readlink (user-namespace clone-pid)) | ||
| 114 | (readlink (user-namespace fork-pid)))))) | ||
| 115 | ;; Clean up. | ||
| 116 | (waitpid clone-pid) | ||
| 117 | (waitpid fork-pid) | ||
| 118 | result)))))))) | ||
| 93 | 119 | ||
| 94 | (test-assert "all-network-interfaces" | 120 | (test-assert "all-network-interfaces" |
| 95 | (match (all-network-interfaces) | 121 | (match (all-network-interfaces) |
