uffi/tests time.lisp,NONE,1.1 gettime.lisp,1.1,NONE

"Kevin M. Rosenberg" <[email protected]> Wed, 30 Apr 2003 08:06:16 -0600
Newsgroups gmane.lisp.uffi.cvs
Message-ID <[email protected]>
Update of /pubcvs/uffi/tests
In directory boa.b9.com:/tmp/cvs-serv30621/tests

Added Files:
	time.lisp 
Removed Files:
	gettime.lisp 
Log Message:


--- NEW FILE: time.lisp ---
;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
;;;; *************************************************************************
;;;; FILE IDENTIFICATION
;;;;
;;;; Name:          time.lisp
;;;; Purpose:       UFFI test file, time, use C structures
;;;; Author:        Kevin M. Rosenberg
;;;; Date Started:  Feb 2002
;;;;
;;;; $Id: time.lisp,v 1.1 2003/04/30 14:06:14 kevin Exp $
;;;;
;;;; 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)

(uffi:def-foreign-type time-t :unsigned-long)

(uffi:def-struct tm
    (sec :int)
  (min :int)
  (hour :int)
  (mday :int)
  (mon :int)
  (year :int)
  (wday :int)
  (yday :int)
  (isdst :int))

(uffi:def-function ("time" c-time) 
    ((time (* time-t)))
  :returning time-t)

(uffi:def-function ("gmtime" c-gmtime)
    ((time (* time-t)))
  :returning (* tm))

(uffi:def-type time-t :unsigned-long)
(uffi:def-type tm-pointer (* tm))

(deftest time.1
   (uffi:with-foreign-object (time 'time-t)
     (setf (uffi:deref-pointer time :unsigned-long) 7381)
     (uffi:deref-pointer time :unsigned-long))
  7381)

(deftest time.2
   (uffi:with-foreign-object (time 'time-t)
     (setf (uffi:deref-pointer time :unsigned-long) 7381)
     (let ((tm-ptr (the tm-pointer (c-gmtime time))))
       (values (1+ (uffi:get-slot-value tm-ptr 'tm 'mon))
	       (uffi:get-slot-value tm-ptr 'tm 'mday)
	       (+ 1900 (uffi:get-slot-value tm-ptr 'tm 'year))
	       (uffi:get-slot-value tm-ptr 'tm 'hour)
	       (uffi:get-slot-value tm-ptr 'tm 'min)
	       (uffi:get-slot-value tm-ptr 'tm 'sec)
	       )))
  1 1 1970 2 3 1)


		    




--- gettime.lisp DELETED ---