1 ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICAION
6 ;;;; Purpose: Tests of with-cast-pointer
7 ;;;; Programmer: Kevin M. Rosenberg / Edi Weitz
8 ;;;; Date Started: Aug 2003
12 ;;;; This file, part of UFFI, is Copyright (c) 2003-2005 by Kevin M. Rosenberg
14 ;;;; *************************************************************************
16 (in-package #:uffi-tests)
18 (uffi:def-function ("cast_test_int" cast-test-int)
21 :returning :pointer-void)
23 (uffi:def-function ("cast_test_float" cast-test-float)
26 :returning :pointer-void)
30 (uffi:with-cast-pointer (temp (cast-test-int) :int)
31 (assert (= (uffi:deref-pointer temp :int) 23)))
32 (let ((result (cast-test-int)))
33 (uffi:with-cast-pointer (result2 result :int)
34 (assert (= (uffi:deref-pointer result2 :int) 23)))
35 (uffi:with-cast-pointer (temp result :int)
36 (assert (= (uffi:deref-pointer temp :int) 23))))
42 (uffi:with-cast-pointer (temp (cast-test-float) :double)
43 (assert (= (uffi:deref-pointer temp :double) 3.21d0)))
44 (let ((result (cast-test-float)))
45 (uffi:with-cast-pointer (result2 result :double)
46 (assert (= (uffi:deref-pointer result2 :double) 3.21d0)))
47 (uffi:with-cast-pointer (temp result :double)
48 (assert (= (uffi:deref-pointer temp :double) 3.21d0))))