1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*-
;;;; *************************************************************************
;;;; FILE IDENTIFICAION
;;;;
;;;; Name: casts.lisp
;;;; Purpose: Tests of with-cast-pointer
;;;; Programmer: Kevin M. Rosenberg / Edi Weitz
;;;; Date Started: Aug 2003
;;;;
;;;; This file, part of UFFI, is Copyright (c) 2003-2010 by Kevin M. Rosenberg
;;;;
;;;; *************************************************************************
(in-package #:uffi-tests)
(uffi:def-function ("cast_test_int" cast-test-int)
()
:module "uffi_tests"
:returning :pointer-void)
(uffi:def-function ("cast_test_float" cast-test-float)
()
:module "uffi_tests"
:returning :pointer-void)
(deftest :cast.1
(progn
(uffi:with-cast-pointer (temp (cast-test-int) :int)
(assert (= (uffi:deref-pointer temp :int) 23)))
(let ((result (cast-test-int)))
(uffi:with-cast-pointer (result2 result :int)
(assert (= (uffi:deref-pointer result2 :int) 23)))
(uffi:with-cast-pointer (temp result :int)
(assert (= (uffi:deref-pointer temp :int) 23))))
t)
t)
(deftest :cast.2
(progn
(uffi:with-cast-pointer (temp (cast-test-float) :double)
(assert (= (uffi:deref-pointer temp :double) 3.21d0)))
(let ((result (cast-test-float)))
(uffi:with-cast-pointer (result2 result :double)
(assert (= (uffi:deref-pointer result2 :double) 3.21d0)))
(uffi:with-cast-pointer (temp result :double)
(assert (= (uffi:deref-pointer temp :double) 3.21d0))))
t)
t)
|