qemu/tests/tcg/cris/check_time1.c
<<
>>
Prefs
   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