diff options
author | Anthony Liguori <aliguori@us.ibm.com> | 2012-01-10 13:10:42 -0600 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2012-01-12 10:03:28 -0600 |
commit | c09015dd04e14a9b99250ed06fb5a47e2efa387f (patch) | |
tree | cc9e2078c44558a7d0e4ee9bd914383c6be130b5 /tests/tcg/cris/check_time1.c | |
parent | a0f426109e17d579c2712f5b96a50215e6cc06a4 (diff) |
tests: mv tests/* -> tests/tcg
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'tests/tcg/cris/check_time1.c')
-rw-r--r-- | tests/tcg/cris/check_time1.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/tcg/cris/check_time1.c b/tests/tcg/cris/check_time1.c new file mode 100644 index 0000000000..3fcf0e1535 --- /dev/null +++ b/tests/tcg/cris/check_time1.c @@ -0,0 +1,46 @@ +/* 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); +} |