File: casts.lisp

package info (click to toggle)
cl-uffi 2.1.2-1.1
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 1,028 kB
  • sloc: lisp: 3,854; xml: 2,990; makefile: 238; ansic: 169; sh: 35
file content (49 lines) | stat: -rw-r--r-- 1,602 bytes parent folder | download | duplicates (3)
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)