diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/run.scm | 10 | 
1 files changed, 10 insertions, 0 deletions
| diff --git a/tests/run.scm b/tests/run.scm index 8e202ac..f4409fd 100644 --- a/tests/run.scm +++ b/tests/run.scm @@ -17,6 +17,12 @@    (test "run/string* returns a string output in a subprocess"          "This is a test"          (run/string* (lambda () (display "This is a test")))) + +  ;; We must mask sigchld, because otherwise our (wait #f) will fail +  ;; due to scsh-process' signal handler possibly reaping the child +  ;; before our wait is able to do so. +  (signal-mask! signal/chld) +    (test "wait for next process to exit"          '(#t #t #t)          (let ((p (& (sleep 1)))) @@ -24,6 +30,10 @@             (receive (status2 ok?2 pid2) (wait p)               (list (eq? status status2) (eq? ok? ok?2) (or (eq? pid pid2) (list pid pid2))))))) +  (test-assert "signal wasn't unmasked" (signal-masked? signal/chld)) + +  (signal-unmask! signal/chld) +    ;; Reported by Haochi Kiang    (test "run/string* does not redirect stderr"          '("This should go to stdout" "") | 
