X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Frun-program.impure.lisp;h=0200e144549a9beba612daacf1e04dcae85eb83d;hb=389b5755b2eab960c1f4c14045a26de5dbd510c1;hp=a9d36326e57fc922e4e73fa439883a276d6e50cf;hpb=0a477f244a6bf9a751603042d2b66f7e9c13e309;p=sbcl.git diff --git a/tests/run-program.impure.lisp b/tests/run-program.impure.lisp index a9d3632..0200e14 100644 --- a/tests/run-program.impure.lisp +++ b/tests/run-program.impure.lisp @@ -54,10 +54,10 @@ (defparameter *cat-out* (make-synonym-stream '*cat-out-pipe*)) (with-test (:name :run-program-cat-2) - (let ((cat (run-program "/bin/cat" nil :input *cat-in* :output *cat-out* + (let ((cat (run-program "/bin/cat" nil :input *cat-in* :output *cat-out* :wait nil))) - (dolist (test '("This is a test!" - "This is another test!" + (dolist (test '("This is a test!" + "This is another test!" "This is the last test....")) (write-line test *cat-in*) (assert (equal test (read-line *cat-out*)))) @@ -65,7 +65,7 @@ ;;; The above test used to use ed, but there were buffering issues: on some platforms ;;; buffering of stdin and stdout depends on their TTYness, and ed isn't sufficiently -;;; agressive about flushing them. So, here's another test using :PTY. +;;; agressive about flushing them. So, here's another test using :PTY. (defparameter *tmpfile* "run-program-ed-test.tmp") @@ -97,7 +97,7 @@ *ed*) (unwind-protect - (with-test (:name :run-program-ed) + (with-test (:name :run-program-ed) (assert-ed nil "4") (assert-ed ".s/bar/baz/g" "") (assert-ed "w" "4") @@ -106,3 +106,17 @@ (with-open-file (f *tmpfile*) (assert (equal "baz" (read-line f))))) (delete-file *tmpfile*)) + +;; Around 1.0.12 there was a regression when :INPUT or :OUTPUT was a +;; pathname designator. Since these use the same code, it should +;; suffice to test just :INPUT. +(let ((file)) + (unwind-protect + (progn (with-open-file (f "run-program-test.tmp" :direction :output) + (setf file (truename f)) + (write-line "Foo" f)) + (assert (run-program "cat" () + :input file :output t + :search t :wait t))) + (when file + (delete-file file))))