From 6ea6e1476ff4a18d4b4b864c3065d18ed99c69af Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 18 Dec 2018 14:51:56 +0100 Subject: file-systems: Spawn a REPL only when interaction is possible. Fixes . Reported by Jan Nieuwenhuizen . * gnu/build/file-systems.scm (check-file-system): Call 'start-repl' only if current-input-port passes 'isatty?'. * gnu/services/shepherd.scm (shepherd-configuration-file): After 'for-each' expression, call 'redirect-port'. * gnu/tests/base.scm (run-basic-test)["stdin is /dev/null"]: New test. --- gnu/tests/base.scm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'gnu/tests') diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 03392cef38..8d4e218a8f 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -123,6 +123,21 @@ (define marionette #f)))) marionette)) + (test-eq "stdin is /dev/null" + 'eof + ;; Make sure services can no longer read from stdin once the + ;; system has booted. + (marionette-eval + `(begin + (use-modules (gnu services herd)) + (start 'user-processes) + ((@@ (gnu services herd) eval-there) + '(let ((result (read (current-input-port)))) + (if (eof-object? result) + 'eof + result)))) + marionette)) + (test-assert "shell and user commands" ;; Is everything in $PATH? (zero? (marionette-eval '(system " -- cgit v1.2.3