| /* Basic time functionality test: check that milliseconds are |
| incremented for each syscall (does not work on host). */ |
| #include <stdio.h> |
| #include <time.h> |
| #include <sys/time.h> |
| #include <string.h> |
| #include <stdlib.h> |
| |
| void err (const char *s) |
| { |
| perror (s); |
| abort (); |
| } |
| |
| int |
| main (void) |
| { |
| struct timeval t_m = {0, 0}; |
| struct timezone t_z = {0, 0}; |
| struct timeval t_m1 = {0, 0}; |
| int i; |
| |
| if (gettimeofday (&t_m, &t_z) != 0) |
| err ("gettimeofday"); |
| |
| for (i = 1; i < 10000; i++) |
| if (gettimeofday (&t_m1, NULL) != 0) |
| err ("gettimeofday 1"); |
| else |
| if (t_m1.tv_sec * 1000000 + t_m1.tv_usec |
| != (t_m.tv_sec * 1000000 + t_m.tv_usec + i * 1000)) |
| { |
| fprintf (stderr, "t0 (%ld, %ld), i %d, t1 (%ld, %ld)\n", |
| t_m.tv_sec, t_m.tv_usec, i, t_m1.tv_sec, t_m1.tv_usec); |
| abort (); |
| } |
| |
| if (time (NULL) != t_m1.tv_sec) |
| { |
| fprintf (stderr, "time != gettod\n"); |
| abort (); |
| } |
| |
| printf ("pass\n"); |
| exit (0); |
| } |