X-Git-Url: http://git.kpe.io/?p=uffi.git;a=blobdiff_plain;f=tests%2Ftime.lisp;h=16a0066d02b3a27107b5af05046dfc84ba767b53;hp=cccd0b40f80421aa319a6ae294099a470906e0cc;hb=b86fdf882156aa45dc6e8e93a158dedf506f4233;hpb=3f02f80ce6909ada82d9791172821756f967a844 diff --git a/tests/time.lisp b/tests/time.lisp index cccd0b4..16a0066 100644 --- a/tests/time.lisp +++ b/tests/time.lisp @@ -7,9 +7,7 @@ ;;;; Author: Kevin M. Rosenberg ;;;; Date Started: Feb 2002 ;;;; -;;;; $Id$ -;;;; -;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg +;;;; This file, part of UFFI, is Copyright (c) 2002-2010 by Kevin M. Rosenberg ;;;; ;;;; ************************************************************************* @@ -30,42 +28,42 @@ ;; gmoffset present on SusE SLES9 (gmoffset :long)) -(uffi:def-function ("time" c-time) +(uffi:def-function ("time" c-time) ((time (* time-t))) :returning time-t) (uffi:def-function "gmtime" ((time (* time-t))) - :returning (* tm)) + :returning (:struct-pointer tm)) (uffi:def-function "asctime" - ((time (* tm))) + ((time (:struct-pointer tm))) :returning :cstring) (uffi:def-type time-t :unsigned-long) -(uffi:def-type tm-pointer (* tm)) +(uffi:def-type tm-pointer (:struct-pointer tm)) -(deftest time.1 +(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 +(deftest :time.2 (uffi:with-foreign-object (time 'time-t) (setf (uffi:deref-pointer time :unsigned-long) 7381) (let ((tm-ptr (the tm-pointer (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) - ))) + (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) -(uffi:def-struct timeval +(uffi:def-struct timeval (secs :long) (usecs :long)) @@ -73,29 +71,29 @@ (minutes-west :int) (dsttime :int)) -(uffi:def-function ("gettimeofday" c-gettimeofday) +(uffi:def-function ("gettimeofday" c-gettimeofday) ((tv (* timeval)) (tz (* timezone))) :returning :int) - + (defun get-utime () (uffi:with-foreign-object (tv 'timeval) (let ((res (c-gettimeofday tv (uffi:make-null-pointer 'timezone)))) (values (+ (* 1000000 (uffi:get-slot-value tv 'timeval 'secs)) - (uffi:get-slot-value tv 'timeval 'usecs)) + (uffi:get-slot-value tv 'timeval 'usecs)) res)))) -(deftest timeofday.1 +(deftest :timeofday.1 (multiple-value-bind (t1 res1) (get-utime) (multiple-value-bind (t2 res2) (get-utime) - (and (or (= t2 t1) (> t2 t1)) - (> t1 1000000000) - (> t2 1000000000) - (zerop res1) - (zerop res2)))) + (and (or (= t2 t1) (> t2 t1)) + (> t1 1000000000) + (> t2 1000000000) + (zerop res1) + (zerop res2)))) t) - + (defun posix-time-to-asctime (secs) "Converts number of seconds elapsed since 00:00:00 on January 1, 1970, Coordinated Universal Time (UTC)" (string-right-trim @@ -105,6 +103,6 @@ (setf (uffi:deref-pointer time :unsigned-long) secs) (asctime (gmtime time)))))) -(deftest time.3 +(deftest :time.3 (posix-time-to-asctime 0) "Thu Jan 1 00:00:00 1970")