r5495: *** empty log message ***
[uffi.git] / tests / casts.lisp
1 ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
4 ;;;;
5 ;;;; Name:          casts
6 ;;;; Purpose:       Tests of with-cast-pointer
7 ;;;; Programmer:    Kevin M. Rosenberg / Edi Weitz
8 ;;;; Date Started:  Aug 2003
9 ;;;;
10 ;;;; $Id: casts.lisp,v 1.1 2003/08/14 19:35:05 kevin Exp $
11 ;;;;
12 ;;;; *************************************************************************
13
14 (in-package #:uffi-tests)
15
16 (uffi:def-function ("cast_test_int" cast-test-int)
17     ()
18   :returning :pointer-void)
19
20 (uffi:def-function ("cast_test_float" cast-test-float)
21     ()
22   :returning :pointer-void)
23
24 (deftest cast.1
25   (progn
26     (uffi:with-cast-pointer (temp (cast-test-int) :int)
27       (assert (= (uffi:deref-pointer temp :int) 23)))
28     (let ((result (cast-test-int)))
29       (uffi:with-cast-pointer (result2 result :int)
30         (assert (= (uffi:deref-pointer result2 :int) 23)))
31       (uffi:with-cast-pointer (temp result :int)
32         (assert (= (uffi:deref-pointer temp :int) 23))))
33     t)
34   t)
35
36 (deftest cast.2
37     (progn
38       (uffi:with-cast-pointer (temp (cast-test-float) :double)
39         (assert (= (uffi:deref-pointer temp :double) 3.21d0)))
40       (let ((result (cast-test-float)))
41         (uffi:with-cast-pointer (result2 result :double)
42           (assert (= (uffi:deref-pointer result2 :double) 3.21d0)))
43         (uffi:with-cast-pointer (temp result :double)
44           (assert (= (uffi:deref-pointer temp :double) 3.21d0))))
45       t)
46   t)
47