|
Packit |
6c4009 |
/* Test setting the monotonic clock. */
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
#include <time.h>
|
|
Packit |
6c4009 |
#include <unistd.h>
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
#if defined CLOCK_MONOTONIC && defined _POSIX_MONOTONIC_CLOCK
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
# include <errno.h>
|
|
Packit |
6c4009 |
# include <stdio.h>
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
static int
|
|
Packit |
6c4009 |
do_test (void)
|
|
Packit |
6c4009 |
{
|
|
Packit |
6c4009 |
if (sysconf (_SC_MONOTONIC_CLOCK) <= 0)
|
|
Packit |
6c4009 |
return 0;
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
struct timespec ts;
|
|
Packit |
6c4009 |
if (clock_gettime (CLOCK_MONOTONIC, &ts) != 0)
|
|
Packit |
6c4009 |
{
|
|
Packit |
6c4009 |
puts ("clock_gettime(CLOCK_MONOTONIC) failed");
|
|
Packit |
6c4009 |
return 1;
|
|
Packit |
6c4009 |
}
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
/* Setting the monotonic clock must fail. */
|
|
Packit |
6c4009 |
if (clock_settime (CLOCK_MONOTONIC, &ts) != -1)
|
|
Packit |
6c4009 |
{
|
|
Packit |
6c4009 |
puts ("clock_settime(CLOCK_MONOTONIC) did not fail");
|
|
Packit |
6c4009 |
return 1;
|
|
Packit |
6c4009 |
}
|
|
Packit |
6c4009 |
if (errno != EINVAL)
|
|
Packit |
6c4009 |
{
|
|
Packit |
6c4009 |
printf ("clock_settime(CLOCK_MONOTONIC) set errno to %d, expected %d\n",
|
|
Packit |
6c4009 |
errno, EINVAL);
|
|
Packit |
6c4009 |
return 1;
|
|
Packit |
6c4009 |
}
|
|
Packit |
6c4009 |
return 0;
|
|
Packit |
6c4009 |
}
|
|
Packit |
6c4009 |
# define TEST_FUNCTION do_test ()
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
#else
|
|
Packit |
6c4009 |
# define TEST_FUNCTION 0
|
|
Packit |
6c4009 |
#endif
|
|
Packit |
6c4009 |
#include "../test-skeleton.c"
|