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)
+