;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Feb 2002
;;;;
-;;;; $Id: gethostname.lisp,v 1.1 2002/09/30 10:02:36 kevin Exp $
+;;;; $Id: gethostname.lisp,v 1.4 2003/04/29 14:08:02 kevin Exp $
;;;;
;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
;;;; *************************************************************************
-(in-package :cl-user)
+(in-package :uffi-tests)
;;; This example is inspired by the example on the CL-Cookbook web site
(defun gethostname ()
"Returns the hostname"
(let* ((name (uffi:allocate-foreign-string 256))
- (result (c-gethostname name 256)))
- (unwind-protect
- (if (zerop result)
- (uffi:convert-from-foreign-string name)
- (error "gethostname() failed."))
- (uffi:free-foreign-object name))))
+ (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: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)))
+(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))
-#+test-uffi
-(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"))
- )