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
10 ;;;; This file, part of UFFI, is Copyright (c) 2003-2010 by Kevin M. Rosenberg
12 ;;;; *************************************************************************
14 (in-package #:uffi-tests)
16 (uffi:def-function ("cast_test_int" cast-test-int)
19 :returning :pointer-void)
21 (uffi:def-function ("cast_test_float" cast-test-float)
24 :returning :pointer-void)
28 (uffi:with-cast-pointer (temp (cast-test-int) :int)
29 (assert (= (uffi:deref-pointer temp :int) 23)))
30 (let ((result (cast-test-int)))
31 (uffi:with-cast-pointer (result2 result :int)
32 (assert (= (uffi:deref-pointer result2 :int) 23)))
33 (uffi:with-cast-pointer (temp result :int)
34 (assert (= (uffi:deref-pointer temp :int) 23))))
40 (uffi:with-cast-pointer (temp (cast-test-float) :double)
41 (assert (= (uffi:deref-pointer temp :double) 3.21d0)))
42 (let ((result (cast-test-float)))
43 (uffi:with-cast-pointer (result2 result :double)
44 (assert (= (uffi:deref-pointer result2 :double) 3.21d0)))
45 (uffi:with-cast-pointer (temp result :double)
46 (assert (= (uffi:deref-pointer temp :double) 3.21d0))))