X-Git-Url: http://git.kpe.io/?p=uffi.git;a=blobdiff_plain;f=tests%2Fuffi-c-test-lib.lisp;h=9b87cf3d37cb232253e3ff385ced327c302cf416;hp=20f4ccb443db01d6aef3de9b06b6afcdf93bb865;hb=b86fdf882156aa45dc6e8e93a158dedf506f4233;hpb=bdb966b22ea563a7dfa1f464a1b6cb6d8b5a712c diff --git a/tests/uffi-c-test-lib.lisp b/tests/uffi-c-test-lib.lisp index 20f4ccb..9b87cf3 100644 --- a/tests/uffi-c-test-lib.lisp +++ b/tests/uffi-c-test-lib.lisp @@ -2,33 +2,22 @@ ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; -;;;; Name: c-test-fns.cl +;;;; Name: uffi-c-test-lib.lisp ;;;; Purpose: UFFI Example file for zlib compression ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Mar 2002 ;;;; -;;;; $Id: uffi-c-test-lib.lisp,v 1.1 2003/04/29 14:08:02 kevin Exp $ +;;;; This file, part of UFFI, is Copyright (c) 2002-2010 by Kevin M. Rosenberg ;;;; -;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg -;;;; -;;;; UFFI users are granted the rights to distribute and use this software -;;;; as governed by the terms of the Lisp Lesser GNU Public License -;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. ;;;; ************************************************************************* -(in-package :uffi-tests) +(in-package #:uffi-tests) -(unless (uffi:load-foreign-library - (uffi:find-foreign-library "uffi-c-test-lib" - (list *load-truename* - "/usr/lib/")) - :supporting-libraries '("c")) - (warn "Unable to load uffi-c-test-lib library")) (uffi:def-function ("cs_to_upper" cs-to-upper) ((input (* :unsigned-char))) :returning :void - ) + :module "uffi_tests") (defun string-to-upper (str) (uffi:with-foreign-string (str-foreign str) @@ -38,7 +27,7 @@ (uffi:def-function ("cs_count_upper" cs-count-upper) ((input :cstring)) :returning :int - ) + :module "uffi_tests") (defun string-count-upper (str) (uffi:with-cstring (str-cstring str) @@ -47,15 +36,32 @@ (uffi:def-function ("half_double_vector" half-double-vector) ((size :int) (vec (* :double))) - :returning :void) + :returning :void + :module "uffi_tests") + +(uffi:def-function ("return_long_negative_one" return-long-negative-one) + () + :returning :long + :module "uffi_tests") + +(uffi:def-function ("return_int_negative_one" return-int-negative-one) + () + :returning :int + :module "uffi_tests") + +(uffi:def-function ("return_short_negative_one" return-short-negative-one) + () + :returning :short + :module "uffi_tests") + (uffi:def-constant +double-vec-length+ 10) (defun test-half-double-vector () (let ((vec (uffi:allocate-foreign-object :double +double-vec-length+)) - results) + results) (dotimes (i +double-vec-length+) - (setf (uffi:deref-array vec '(:array :double) i) - (coerce i 'double-float))) + (setf (uffi:deref-array vec '(:array :double) i) + (coerce i 'double-float))) (half-double-vector +double-vec-length+ vec) (dotimes (i +double-vec-length+) (push (uffi:deref-array vec '(:array :double) i) results)) @@ -77,11 +83,14 @@ (system:without-gcing (half-double-vector +double-vec-length+ (system:vector-sap vec))) vec)) - -(deftest c-test.1 (string-to-upper "this is a test") "THIS IS A TEST") -(deftest c-test.2 (string-to-upper nil) nil) -(deftest c-test.3 (string-count-upper "This is a Test") 2) -(deftest c-test.4 (string-count-upper nil) -1) -(deftest c-test.5 (test-half-double-vector) + +(deftest :c-test.1 (string-to-upper "this is a test") "THIS IS A TEST") +(deftest :c-test.2 (string-to-upper nil) nil) +(deftest :c-test.3 (string-count-upper "This is a Test") 2) +(deftest :c-test.4 (string-count-upper nil) -1) +(deftest :c-test.5 (test-half-double-vector) (0.0d0 0.5d0 1.0d0 1.5d0 2.0d0 2.5d0 3.0d0 3.5d0 4.0d0 4.5d0)) +(deftest :c-test.6 (return-long-negative-one) -1) +(deftest :c-test.7 (return-int-negative-one) -1) +(deftest :c-test.8 (return-short-negative-one) -1)