summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-03-19 23:10:25 +0100
committerLudovic Courtès <ludo@gnu.org>2020-03-19 23:17:32 +0100
commitbe0a672c30ad1401019abb5cb83d59be171813d0 (patch)
tree5d80f1228b7c705625396400ff29da6ae7c098be
parentf08b6726611ec9391814fe540821a3964baeb0ba (diff)
tests: Accept manual installation scripts that exit with SIGTERM.
Fixes <https://bugs.gnu.org/39926>. Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>. Previously we'd error out if the installation script exits with non-zero, which was the case because the 'reboot' program would typically not get a reply, and thus would eventually be killed by PID 1 as the system is brought down. * gnu/tests/install.scm (run-install)[install]: Expect SCRIPT to exit with SIGTERM in addition to exiting with zero.
-rw-r--r--gnu/tests/install.scm8
1 files changed, 6 insertions, 2 deletions
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index 9ecc45cc04..4f650ffb34 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -270,8 +270,12 @@ packages defined in installation-os."
(lambda (port)
(write '#$target-os-source port)))
marionette)
- (exit (marionette-eval '(zero? (system #$script))
- marionette)))
+
+ ;; Run SCRIPT. It typically invokes 'reboot' as a last step and
+ ;; thus normally gets killed with SIGTERM by PID 1.
+ (let ((status (marionette-eval '(system #$script) marionette)))
+ (exit (or (equal? (status:term-sig status) SIGTERM)
+ (equal? (status:exit-val status) 0)))))
(when #$(->bool gui-test)
(wait-for-unix-socket "/var/guix/installer-socket"