1 ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
6 ;;;; Purpose: Tests of with-cast-pointer
7 ;;;; Programmer: Kevin M. Rosenberg / Edi Weitz
8 ;;;; Date Started: Aug 2003
12 ;;;; *************************************************************************
14 (in-package #:uffi-tests)
16 (uffi:def-function ("cast_test_int" cast-test-int)
18 :returning :pointer-void)
20 (uffi:def-function ("cast_test_float" cast-test-float)
22 :returning :pointer-void)
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))))
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))))