1/* Basic time functionality test: check that milliseconds are 2 incremented for each syscall (does not work on host). */ 3#include <stdio.h> 4#include <time.h> 5#include <sys/time.h> 6#include <string.h> 7#include <stdlib.h> 8 9void err (const char *s) 10{ 11 perror (s); 12 abort (); 13} 14 15int 16main (void) 17{ 18 struct timeval t_m = {0, 0}; 19 struct timezone t_z = {0, 0}; 20 struct timeval t_m1 = {0, 0}; 21 int i; 22 23 if (gettimeofday (&t_m, &t_z) != 0) 24 err ("gettimeofday"); 25 26 for (i = 1; i < 10000; i++) 27 if (gettimeofday (&t_m1, NULL) != 0) 28 err ("gettimeofday 1"); 29 else 30 if (t_m1.tv_sec * 1000000 + t_m1.tv_usec 31 != (t_m.tv_sec * 1000000 + t_m.tv_usec + i * 1000)) 32 { 33 fprintf (stderr, "t0 (%ld, %ld), i %d, t1 (%ld, %ld)\n", 34 t_m.tv_sec, t_m.tv_usec, i, t_m1.tv_sec, t_m1.tv_usec); 35 abort (); 36 } 37 38 if (time (NULL) != t_m1.tv_sec) 39 { 40 fprintf (stderr, "time != gettod\n"); 41 abort (); 42 } 43 44 printf ("pass\n"); 45 exit (0); 46} 47