sb-alien: some alien refactoring
[sbcl.git] / tests / script.test.sh
index e17761a..33483ba 100644 (file)
@@ -21,9 +21,9 @@ tmpscript=$TEST_FILESTEM.lisp-script
 tmpout=$TEST_FILESTEM.lisp-out
 tmperr=$TEST_FILESTEM.lisp-err
 
-echo '(quit :unix-status 7)' > $tmpscript
+echo '(exit :code 7)' > $tmpscript
 run_sbcl --script $tmpscript
-check_status_maybe_lose "--script exit status from QUIT" $? 7 "(quit status good)"
+check_status_maybe_lose "--script exit status from EXIT" $? 7 "(status good)"
 
 echo '(error "oops")' > $tmpscript
 run_sbcl --script $tmpscript 1> $tmpout 2> $tmperr
@@ -38,14 +38,32 @@ run_sbcl --script $tmpscript
 check_status_maybe_lose "--script exit status from normal exit" $? 0 "(everything ok)"
 
 cat > $tmpscript <<EOF
-(setf *standard-output* (open "/dev/stdout"))
+(setf *standard-output* (make-broadcast-stream))
+(close *standard-output*)
+(sb-ext:exit :code 3)
+EOF
+run_sbcl --script $tmpscript >/dev/null
+check_status_maybe_lose "--script exit status from QUIT when standard-output closed" $? 3 "(as given)"
+run_sbcl --load $tmpscript >/dev/null
+check_status_maybe_lose "--load exit status from QUIT when standard-output closed" $? 3 "(as given)"
+
+cat > $tmpscript <<EOF
 (close *standard-output*)
 (sb-ext:quit :unix-status 3)
 EOF
-run_sbcl --script $tmpscript
-check_status_maybe_lose "--script exit status from QUIT when stdout closed" $? 3 "(as given)"
-run_sbcl --load $tmpscript
-check_status_maybe_lose "--load exit status from QUIT when stdout closed" $? 3 "(as given)"
+run_sbcl --script $tmpscript >/dev/null
+check_status_maybe_lose "--script exit status from QUIT when original standard-output closed" $? 3 "(as given)"
+run_sbcl --load $tmpscript >/dev/null
+check_status_maybe_lose "--load exit status from QUIT when original standard-output closed" $? 3 "(as given)"
+
+cat > $tmpscript <<EOF
+(close sb-sys:*stdout*)
+(sb-ext:quit :unix-status 3)
+EOF
+run_sbcl --script $tmpscript >/dev/null
+check_status_maybe_lose "--script exit status from EXIT when stdout closed" $? 3 "(as given)"
+run_sbcl --load $tmpscript >/dev/null
+check_status_maybe_lose "--load exit status from EXIT when stdout closed" $? 3 "(as given)"
 
 cat > $tmpscript <<EOF
 (loop (write-line (read-line)))
@@ -76,6 +94,17 @@ then
     exit $EXIT_LOSE
 fi
 
+# --script
+cat > $tmpscript <<EOF
+(print :script-ok)
+EOF
+run_sbcl --script $tmpscript --eval foo \
+  < /dev/null > $tmpout
+if [ "`grep -c :SCRIPT-OK $tmpout`" != 1 ] ; then
+   echo "failed --script test using PRINT"
+   exit $EXIT_LOSE
+fi
+
 rm -f $tmpscript $tmpout $tmperr
 
 exit $EXIT_TEST_WIN