X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fexternal-format.impure.lisp;h=4af0da3d44c1afa5eee0ea898dc30bcc9f985ef3;hb=6d9e2243954872457115bbb9ac1ecb1d161acced;hp=2eff8347c4bff4e772c2c1d06b9bf0f7e1b23859;hpb=94023958a1013881e38745f443240f905c1b4a0b;p=sbcl.git diff --git a/tests/external-format.impure.lisp b/tests/external-format.impure.lisp index 2eff834..4af0da3 100644 --- a/tests/external-format.impure.lisp +++ b/tests/external-format.impure.lisp @@ -53,7 +53,7 @@ #-sb-unicode (progn (test-util:report-test-status) - (sb-ext:quit :unix-status 104)) + (sb-ext:exit :code 104)) ;;; Test UTF-8 writing and reading of 1, 2, 3 and 4 octet characters with ;;; all possible offsets. Tests for buffer edge bugs. fd-stream buffers are @@ -124,7 +124,8 @@ (write-byte #xe0 s) (dotimes (i 40) (write-sequence a s)))) -(with-test (:name (:character-decode-large :attempt-resync)) +(with-test (:name (:character-decode-large :attempt-resync) + :fails-on :win32) (with-open-file (s *test-path* :direction :input :external-format :utf-8) (let ((count 0)) @@ -991,5 +992,47 @@ (write-string string s)) (with-open-file (s *test-path* :external-format :utf-32be) (assert (string= " ???? " (read-line s)))))) + +(with-test (:name :invalid-external-format :fails-on :win32) + (labels ((test-error (e) + (assert (typep e 'error)) + (unless (equal "Undefined external-format: :BAD-FORMAT" + (princ-to-string e)) + (error "Bad error:~% ~A" e))) + (test (direction) + (test-error + (handler-case + (open "/dev/null" :direction direction :external-format :bad-format + :if-exists :overwrite) + (error (e) e))))) + (test :input) + (test :output) + (test :io) + (test-error + (handler-case + (run-program "sh" '() :input :stream :external-format :bad-format) + (error (e) e))) + (test-error + (handler-case + (string-to-octets "foobar" :external-format :bad-format) + (error (e) e))) + (test-error + (let ((octets (string-to-octets "foobar" :external-format :latin1))) + (handler-case + (octets-to-string octets :external-format :bad-format) + (error (e) e)))))) + +(with-test (:name :lp713063) + (with-open-file (f *test-path* + :direction :output + :external-format '(:euc-jp :replacement #\?) + :if-exists :supersede) + (write-string (make-string 3 :initial-element #\horizontal_bar) f)) + (assert (equal "???" + (with-open-file (f *test-path* + :direction :input + :external-format :euc-jp) + (read-line f)))) + (delete-file *test-path*)) ;;;; success