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