newlisp/qa-specific-tests/qa-pipe

43 lines
985 B
Text
Executable file

#!/usr/bin/newlisp
(define (test-pipe)
(write-file "pipe-child.lsp"
[text]
(set 'msg (read-line (int (nth 2 (main-args)))))
(write-line (int (nth 3 (main-args))) (upper-case msg))
(exit)
[/text]
)
(and
(set 'channel (pipe))
(set 'in (first channel))
(set 'out (last channel))
(if (find ostype '("Windows" "OS/2"))
(process (string "newlisp pipe-child.lsp " in " " out))
(process (string "./newlisp pipe-child.lsp " in " " out)))
(sleep 1000)
(write-line out (dup "hello there " 1000))
(sleep 1000)
(= (read-line in) (dup "HELLO THERE " 1000))
(delete-file "pipe-child.lsp")
)
)
;(if (find ostype '("Linux" "BSD" "OSX" "Solaris" "SunOS" "Aix" "True64Unix" "Cygwin"))
; (define (test-pipe)
; (set 'channel (pipe))
; (set 'in (first channel))
; (set 'out (last channel))
; (fork (write-line out (upper-case (read-line in))))
; (write-line out "hello there")
; (sleep 2000)
; (= (read-line in) "HELLO THERE")
; )
;)
(println "test-pipe => " (test-pipe))
(exit)