r10917: 2006-04-17 Kevin Rosenberg (kevin@rosenberg.net)
[uffi.git] / tests / union.lisp
index 4268b91cdceff3da15ce0be14c80b15eeb654ce7..d067bd02446ad343524d51063df473ee8a08f525 100644 (file)
@@ -9,7 +9,7 @@
 ;;;;
 ;;;; $Id$
 ;;;;
-;;;; This file, part of UFFI, is Copyright (c) 2002-2003 by Kevin M. Rosenberg
+;;;; This file, part of UFFI, is Copyright (c) 2002-2005 by Kevin M. Rosenberg
 ;;;;
 ;;;; *************************************************************************
 
         (* 256 (char-code #\C))
         (* 1 128)))
 
-(deftest union.1 (uffi:ensure-char-character 
-                 (uffi:get-slot-value *u* 'tunion1 'char)) #\A)
+(deftest :union.1 
+    (uffi:ensure-char-character 
+     (uffi:get-slot-value *u* 'tunion1 'char))
+  #\A)
+
+(deftest :union.2 
+    (uffi:ensure-char-integer 
+     (uffi:get-slot-value *u* 'tunion1 'char))
+  65)
+
+#-(or sparc sparc-v9 openmcl digitool)
+(deftest :union.3 (plusp (uffi:get-slot-value *u* 'tunion1 'uint)) t)
+
+
+(uffi:def-union foo-u
+    (bar :pointer-self))
+
+(uffi:def-foreign-type foo-u-ptr (* foo-u))
+
+;; tests that compilation worked
+(deftest :unions.4 
+  (with-foreign-object (p 'foo-u)
+    t)
+  t)
+
+(deftest :unions.5
+    (progn
+      (uffi:def-foreign-type foo-union (:union foo-u))
+      t)
+  t)
 
-#-(or sparc sparc-v9 mcl)
-(deftest union.2 (plusp (uffi:get-slot-value *u* 'tunion1 'uint)) t)
 
 
-;;    (uffi:free-foreign-object u))