X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Falien.impure.lisp;h=fe5c18ee3d99ae68e301f50705c35e851521662f;hb=3d46727f4b73a63c788c143efb1f196c153af371;hp=d60bd102043935b3bc7655c2c6246f1bfbc82d4a;hpb=bb3994fcc9a556d1a26d35f6ff9386d01030821d;p=sbcl.git diff --git a/tests/alien.impure.lisp b/tests/alien.impure.lisp index d60bd10..fe5c18e 100644 --- a/tests/alien.impure.lisp +++ b/tests/alien.impure.lisp @@ -264,8 +264,7 @@ ((foo (unsigned 32))) foo) -#+(or x86-64 x86) -(with-test (:name bug-316325) +(with-test (:name bug-316325 :skipped-on '(not (or :x86-64 :x86))) ;; This test works by defining a callback function that provides an ;; identity transform over a full-width machine word, then calling ;; it as if it returned a narrower type and checking to see if any @@ -305,7 +304,7 @@ "execv")) (values (alien-funcall sys-execv1 program argv))))) (compiler-note (n) - (error n)))) + (error "bad note: ~A" n)))) (with-test (:name :bug-721087) (assert (typep nil '(alien c-string))) @@ -319,4 +318,18 @@ '(alien (c-string :not-null t)))) :ok)))))) +(with-test (:name :make-alien-string) + (let ((alien (sb-alien::make-alien-string "This comes from lisp!"))) + (gc :full t) + (assert (equal "This comes from lisp!" (cast alien c-string))) + (free-alien alien))) + +(with-test (:name :malloc-failure) + (assert (eq :enomem + (handler-case + (loop repeat 128 + collect (sb-alien:make-alien char (1- array-total-size-limit))) + (storage-condition () + :enomem))))) + ;;; success