uffi/tests time.lisp,1.2,1.3
"Kevin M. Rosenberg" <[email protected]> Sat, 23 Aug 2003 12:37:01 +0000
| Newsgroups | gmane.lisp.uffi.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /pubcvs/uffi/tests
In directory boa.b9.com:/tmp/cvs-serv9607/tests
Modified Files:
time.lisp
Log Message:
Index: time.lisp
===================================================================
RCS file: /pubcvs/uffi/tests/time.lisp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** time.lisp 13 Aug 2003 18:53:42 -0000 1.2
--- time.lisp 23 Aug 2003 12:36:59 -0000 1.3
***************
*** 60,65 ****
!
--- 60,92 ----
! (uffi:def-struct timeval
! (secs :long)
! (usecs :long))
+ (uffi:def-struct timezone
+ (minutes-west :int)
+ (dsttime :int))
+ (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))
+ res))))
+ (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))))
+ t)
+