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