1 ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
5 ;;;; Name: pointers.lisp
6 ;;;; Purpose: Test file for UFFI pointers
7 ;;;; Programmer: Kevin M. Rosenberg
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)
17 (let ((native-string "test string"))
18 (uffi:with-foreign-string (fs native-string)
19 (ensure-char-character
20 (deref-pointer fs :char))))
24 (let ((native-string "test string"))
25 (uffi:with-foreign-string (fs native-string)
26 (ensure-char-character
27 (deref-pointer fs :unsigned-char))))
31 (let ((native-string "test string"))
32 (uffi:with-foreign-string (fs native-string)
34 (deref-pointer fs :unsigned-char))))
38 (let ((native-string "test string"))
39 (uffi:with-foreign-string (fs native-string)
42 (deref-pointer fs :unsigned-char)))))
46 (let ((fs (uffi:allocate-foreign-object :unsigned-char 128)))
47 (setf (uffi:deref-array fs '(:array :unsigned-char) 0)
48 (uffi:ensure-char-storable #\a))
49 (setf (uffi:deref-array fs '(:array :unsigned-char) 1)
50 (uffi:ensure-char-storable (code-char 0)))
51 (uffi:convert-from-foreign-string fs))
54 ;; This produces an array which needs fli:foreign-aref to access
55 ;; rather than fli:dereference
59 (uffi:with-foreign-object (fs '(:array :unsigned-char 128))
60 (setf (uffi:deref-array fs '(:array :unsigned-char) 0)
61 (uffi:ensure-char-storable #\a))
62 (setf (uffi:deref-array fs '(:array :unsigned-char) 1)
63 (uffi:ensure-char-storable (code-char 0)))
64 (uffi:convert-from-foreign-string fs))