X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests%2Fcompress.cl;h=3b41eb9b6b3efcf3f57163811501007d674c6eb0;hb=63b0648b562bc5a8db5ef013804b1ff4e5c52314;hp=cf3bec4e90f6fa66f323bf249a203eebd8a90d8b;hpb=192193db6e4fbda90a840474d4aa2e8762597927;p=uffi.git diff --git a/tests/compress.cl b/tests/compress.cl index cf3bec4..3b41eb9 100644 --- a/tests/compress.cl +++ b/tests/compress.cl @@ -9,7 +9,7 @@ ;;;; ;;;; Copyright (c) 2002 Kevin M. Rosenberg ;;;; -;;;; $Id: compress.cl,v 1.1 2002/03/09 19:55:33 kevin Exp $ +;;;; $Id: compress.cl,v 1.6 2002/03/10 20:01:55 kevin Exp $ ;;;; ;;;; This file is part of UFFI. ;;;; @@ -29,13 +29,15 @@ (in-package :cl-user) -(unless (uffi:load-foreign-library "/usr/lib/libz.so" "zlib" '("c")) +(unless (uffi:load-foreign-library "/usr/lib/libz.so" + :module "zlib" + :supporting-libraries '("c")) (warn "Unable to load zlib")) -(uffi:def-routine ("compress" c-compress) +(uffi:def-function ("compress" c-compress) ((dest (* :unsigned-char)) (destlen (* :long)) - (source :c-string) + (source :cstring) (source-len :long)) :returning :int :module "zlib") @@ -45,10 +47,10 @@ and the numbe of compressed bytes" (let* ((sourcelen (length source)) (destsize (+ 12 (ceiling (* sourcelen 1.01)))) - (dest (uffi:allocate-foreign-string destsize)) + (dest (uffi:allocate-foreign-string destsize :unsigned t)) (destlen (uffi:allocate-foreign-object :long))) (setf (uffi:deref-pointer destlen :long) destsize) - (uffi:with-c-string (source-native source) + (uffi:with-cstring (source-native source) (let ((result (c-compress dest destlen source-native sourcelen)) (newdestlen (uffi:deref-pointer destlen :long))) (unwind-protect @@ -64,3 +66,11 @@ (uffi:free-foreign-object dest))))))) +#+test-uffi +(progn + (flet ((print-results (str) + (multiple-value-bind (compressed len) (compress str) + (format t "~&(compress ~S) => ~S,~D" str compressed len)))) + (print-results "") + (print-results "test") + (print-results "test2")))