blob: 48db3c9101440f3593b16d6f83111c9fc103391a [file] [log] [blame]
/*
* Copyright (c) 2004, Intel Corporation. All rights reserved.
* This file is licensed under the GPL license. For the full content
* of this license, see the COPYING file at the top level of this
* source tree.
* author: adam li
* Test that clock_getres() returns the resolution of clock_id in res.
*
* The clock chosen for this test is CLOCK_PROCESS_CPUTIME_ID.
*/
#define _XOPEN_SOURCE 600
#include <unistd.h>
#include <stdio.h>
#include <time.h>
#include "posixtest.h"
#define LARGENUM 100000
int main(void)
{
#if _POSIX_CPUTIME != -1
struct timespec res;
if (sysconf(_SC_CPUTIME) == -1) {
printf("_POSIX_CPUTIME not supported\n");
return PTS_UNSUPPORTED;
}
/* Initialize res to a number much larger than the resolution
* could possibly be
*/
res.tv_sec = LARGENUM;
res.tv_nsec = LARGENUM;
if (clock_getres(CLOCK_PROCESS_CPUTIME_ID, &res) == 0) {
if (res.tv_sec != LARGENUM) { //assume initialized
#ifdef DEBUG
printf("Resolution is %d sec %d nsec\n",
(int)res.tv_sec, (int)res.tv_nsec);
#endif
printf("Test PASSED\n");
return PTS_PASS;
} else {
printf("clock_getres() success, but res not filled\n");
}
} else {
printf("clock_getres() failed\n");
}
printf("Test FAILED\n");
return PTS_FAIL;
#else
printf("_POSIX_CPUTIME not supported\n");
return PTS_UNSUPPORTED;
#endif
}