diff options
author | David Thompson <dthompson2@worcester.edu> | 2015-10-09 12:33:40 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2015-10-10 09:00:49 -0400 |
commit | a72ccbc25125d0d14cabdc1b0f824f27bb64478b (patch) | |
tree | cc5f9b57857a279e839afb0a52a59e7082415c6f | |
parent | f5a21dc4cfe24a97d6af19683af4dc21f20916af (diff) | |
download | gnu-guix-a72ccbc25125d0d14cabdc1b0f824f27bb64478b.tar gnu-guix-a72ccbc25125d0d14cabdc1b0f824f27bb64478b.tar.gz |
build: container: Fix call-with-clean-exit.
Before, call-with-clean-exit would *always* return an exit code of 1.
* gnu/build/linux-container.scm (call-with-clean-exit): Exit with status
code of 0 if thunk does not throw an exception.
* tests/containers.scm: Add test.
-rw-r--r-- | gnu/build/linux-container.scm | 4 | ||||
-rw-r--r-- | tests/containers.scm | 4 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm index 95220d0bc0..e911494058 100644 --- a/gnu/build/linux-container.scm +++ b/gnu/build/linux-container.scm @@ -36,7 +36,9 @@ "Apply THUNK, but exit with a status code of 1 if it fails." (dynamic-wind (const #t) - thunk + (lambda () + (thunk) + (primitive-exit 0)) (lambda () (primitive-exit 1)))) diff --git a/tests/containers.scm b/tests/containers.scm index 4783f8e8a5..0ba81491ba 100644 --- a/tests/containers.scm +++ b/tests/containers.scm @@ -34,6 +34,10 @@ (test-begin "containers") +(test-assert "call-with-container, exit with 0 when there is no error" + (zero? + (call-with-container '() (const #t) #:namespaces '(user)))) + (test-assert "call-with-container, user namespace" (zero? (call-with-container '() |