~ruther/guix-local

a72ccbc25125d0d14cabdc1b0f824f27bb64478b — David Thompson 10 years ago f5a21dc
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.
2 files changed, 7 insertions(+), 1 deletions(-)

M gnu/build/linux-container.scm
M tests/containers.scm
M gnu/build/linux-container.scm => gnu/build/linux-container.scm +3 -1
@@ 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))))


M tests/containers.scm => tests/containers.scm +4 -0
@@ 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 '()