summaryrefslogtreecommitdiff
path: root/tests/run.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run.scm')
-rw-r--r--tests/run.scm60
1 files changed, 25 insertions, 35 deletions
diff --git a/tests/run.scm b/tests/run.scm
index b5fa419..85a6b11 100644
--- a/tests/run.scm
+++ b/tests/run.scm
@@ -1,27 +1,18 @@
+;;(include "../scsh-process.scm")
(module scsh-tests ()
-(import scheme)
-
-(cond-expand
- (chicken-5 (import (chicken base) (chicken port) (chicken condition)
- (chicken io) (chicken file) (chicken file posix)
- (chicken process signal)
- (chicken fixnum) ;; Why is this needed?!
- srfi-18 test)
- #;(include "../scsh-process.scm")
- (import scsh-process)
-
- (define (read-all #!optional file-or-port)
- (cond ((string? file-or-port)
- (with-input-from-file file-or-port read-string))
- (file-or-port (read-string #f file-or-port))
- (else (read-string))))
- )
- (else (import chicken)
- #;(include "../scsh-process.scm")
- (use scsh-process)
- (use test utils extras ports files posix
- srfi-13 srfi-18 (only setup-api version>=?))))
+(import (scheme base) (scheme write) (scheme read)
+ (chicken base) (chicken port) (chicken condition)
+ (chicken io) (chicken file) (chicken file posix)
+ (chicken process signal)
+ srfi-18 test)
+(import scsh-process)
+
+(define (read-all #!optional file-or-port)
+ (cond ((string? file-or-port)
+ (with-input-from-file file-or-port read-string))
+ (file-or-port (read-string #f file-or-port))
+ (else (read-string))))
(test-begin "scsh-process")
@@ -149,19 +140,16 @@
(test "run/string with begin form"
"hi, there\n"
(run/string (pipe (begin (print "hi, there")) (cat))))
- (when (cond-expand
- (chicken-5 #t)
- (else (version>=? (chicken-version) "4.8.1")))
- (let ((child? #f))
- (thread-start! (lambda ()
- (thread-sleep! 0.5)
- (when child? (print "haihai"))))
- (test "Simple 'begin' form with threading"
- "hi, there\n"
- (run/string (pipe (begin (set! child? #t)
- (thread-sleep! 1)
- (print "hi, there"))
- (cat))))))
+ (let ((child? #f))
+ (thread-start! (lambda ()
+ (thread-sleep! 0.5)
+ (when child? (print "haihai"))))
+ (test "Simple 'begin' form with threading"
+ "hi, there\n"
+ (run/string (pipe (begin (set! child? #t)
+ (thread-sleep! 1)
+ (print "hi, there"))
+ (cat)))))
(let ((the-outfile "outfile"))
(test "Subprocess writing to a file"
@@ -245,6 +233,8 @@
(|| (false) (epf (sh -c "echo hi && false") (- 1))))))
(test-group "finalization"
+ ;; Ensure the automatic reaping thread has a chance to run
+ (thread-yield!)
;; TODO: Find a way to test that the input port didn't get replaced by
;; one from a subshell. This happened before, but not sure how
;; to detect this except running it manually from the REPL.