X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests%2Fgethostname.lisp;h=ff650085f4c76c15ae628e7bafc4a509beb5616f;hb=3ade95bab16abe09642554e9cbf56f117f01e507;hp=e9738918a12077d39c3b1886726eb71d513f1d5b;hpb=bdb966b22ea563a7dfa1f464a1b6cb6d8b5a712c;p=uffi.git diff --git a/tests/gethostname.lisp b/tests/gethostname.lisp index e973891..ff65008 100644 --- a/tests/gethostname.lisp +++ b/tests/gethostname.lisp @@ -2,53 +2,51 @@ ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; -;;;; Name: gethostname.cl +;;;; Name: gethostname.lisp ;;;; Purpose: UFFI Example file to get hostname of system ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Feb 2002 ;;;; -;;;; $Id: gethostname.lisp,v 1.4 2003/04/29 14:08:02 kevin Exp $ +;;;; $Id$ ;;;; -;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg +;;;; This file, part of UFFI, is Copyright (c) 2002-2005 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) ;;; This example is inspired by the example on the CL-Cookbook web site -(uffi:def-function ("gethostname" c-gethostname) - ((name (* :unsigned-char)) - (len :int)) - :returning :int) - -(defun gethostname () - "Returns the hostname" - (let* ((name (uffi:allocate-foreign-string 256)) - (result-code (c-gethostname name 256)) - (hostname (when (zerop result-code) - (uffi:convert-from-foreign-string name)))) - (uffi:free-foreign-object name) - (unless (zerop result-code) - (error "gethostname() failed.")) - hostname)) - -(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.")))) - -(deftest gethostname.1 (stringp (gethostname)) t) -(deftest gethostname.2 (stringp (gethostname2)) t) -(deftest gethostname.3 (plusp (length (gethostname))) t) -(deftest gethostname.4 (plusp (length (gethostname2))) t) -(deftest gethostname.5 (gethostname) #.(gethostname2)) +(eval-when (:compile-toplevel :load-toplevel :execute) + (uffi:def-function ("gethostname" c-gethostname) + ((name (* :unsigned-char)) + (len :int)) + :returning :int) + + (defun gethostname () + "Returns the hostname" + (let* ((name (uffi:allocate-foreign-string 256)) + (result-code (c-gethostname name 256)) + (hostname (when (zerop result-code) + (uffi:convert-from-foreign-string name)))) + (uffi:free-foreign-object name) + (unless (zerop result-code) + (error "gethostname() failed.")) + hostname)) + + (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."))))) + +(deftest :gethostname.1 (stringp (gethostname)) t) +(deftest :gethostname.2 (stringp (gethostname2)) t) +(deftest :gethostname.3 (plusp (length (gethostname))) t) +(deftest :gethostname.4 (plusp (length (gethostname2))) t) +(deftest :gethostname.5 (string= (gethostname) (gethostname2)) t)