X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests%2Fgethostname.cl;h=b668a109fec31a75fd7d3e476ac0c16dabf6a15b;hb=f895dfce050453ec771bf1d22415b1aa10ae6dcf;hp=dc318225ecf76090cd885b2b310b1a7fb208b596;hpb=bf5c7e7c36474375604bcbcedea8794a68dd1784;p=uffi.git diff --git a/tests/gethostname.cl b/tests/gethostname.cl index dc31822..b668a10 100644 --- a/tests/gethostname.cl +++ b/tests/gethostname.cl @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Feb 2002 ;;;; -;;;; $Id: gethostname.cl,v 1.5 2002/03/14 21:03:12 kevin Exp $ +;;;; $Id: gethostname.cl,v 1.12 2002/04/03 00:31:32 kevin Exp $ ;;;; ;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -22,7 +22,7 @@ ;;; This example is inspired by the example on the CL-Cookbook web site (uffi:def-function ("gethostname" c-gethostname) - ((name :cstring) + ((name (* :unsigned-char)) (len :int)) :returning :int) @@ -35,7 +35,31 @@ (uffi:convert-from-foreign-string name) (error "gethostname() failed.")) (uffi:free-foreign-object name)))) - + +(defun gethostname2 () + "Returns the hostname" + (uffi:with-foreign-object (name '(:array :unsigned-char 256)) + (if (zerop (c-gethostname (uffi:char-array-to-pointer name) 256)) + (uffi:convert-from-foreign-string name) + (error "gethostname() failed.")))) + +#+examples-uffi +(progn + (format t "~&Hostname (technique 1): ~A" (gethostname)) + (format t "~&Hostname (technique 2): ~A" (gethostname2))) + #+test-uffi -(format t "~&Hostname: ~A" (gethostname)) +(progn + (let ((hostname1 (gethostname)) + (hostname2 (gethostname2))) + + (util.test:test (and (stringp hostname1) (stringp hostname2)) t + :fail-info "gethostname not string") + (util.test:test (and (not (zerop (length hostname1))) + (not (zerop (length hostname2)))) t + :fail-info "gethostname length 0") + (util.test:test (string= hostname1 hostname1) t + :fail-info "gethostname techniques don't match")) + ) +