X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Falien.impure.lisp;h=e68278c2bd69279f99354040440e6d9711802e5c;hb=5cb51577bd59c36822e90fb814564bb7d59ee37e;hp=aa6eee6aba323dabdaf229d1cc4e850deb0cfdf3;hpb=4e7866afc56e4eec4e33dc2d61bd4f0aeed72cfd;p=sbcl.git diff --git a/tests/alien.impure.lisp b/tests/alien.impure.lisp index aa6eee6..e68278c 100644 --- a/tests/alien.impure.lisp +++ b/tests/alien.impure.lisp @@ -247,8 +247,11 @@ ;;; void conflicted with derived type (declaim (inline bug-316075)) +#-win32 ;kludge: This reader conditional masks a bug, but allows the test + ;to fail cleanly. (sb-alien:define-alien-routine bug-316075 void (result char :out)) -(with-test (:name bug-316075) +(with-test (:name bug-316075 :fails-on :win32) + #+win32 (error "fail") (handler-bind ((warning #'error)) (compile nil '(lambda () (multiple-value-list (bug-316075)))))) @@ -306,7 +309,7 @@ (compiler-note (n) (error "bad note: ~A" n)))) -(with-test (:name :bug-721087) +(with-test (:name :bug-721087 :fails-on :win32) (assert (typep nil '(alien c-string))) (assert (not (typep nil '(alien (c-string :not-null t))))) (assert (eq :ok @@ -348,7 +351,13 @@ (assert (eq :multibyte-4 (handler-case - (let ((c-string (coerce #(70 111 246 0) + ;; KLUDGE, sort of. + ;; + ;; C-STRING decoding doesn't know how long the string is, and since this + ;; looks like a 4-byte sequence, it will grab 4 octets off the end. + ;; + ;; So we pad the vector for safety's sake. + (let ((c-string (coerce #(70 111 246 0 0 0) '(vector (unsigned-byte 8))))) (sb-sys:with-pinned-objects (c-string) (sb-alien::c-string-to-string (sb-sys:vector-sap c-string)