]>
git.proxmox.com Git - rustc.git/blob - src/compiler-rt/test/sanitizer_common/TestCases/Linux/timerfd.cc
1 // RUN: %clangxx -O0 -g %s -o %t && %run %t | FileCheck %s
6 #include <sys/timerfd.h>
9 int main (int argc
, char** argv
)
11 int fd
= timerfd_create(CLOCK_REALTIME
, 0);
14 struct itimerspec its
;
15 its
.it_value
.tv_sec
= 0;
16 its
.it_value
.tv_nsec
= 1000000;
17 its
.it_interval
.tv_sec
= its
.it_value
.tv_sec
;
18 its
.it_interval
.tv_nsec
= its
.it_value
.tv_nsec
;
20 int res
= timerfd_settime(fd
, 0, &its
, NULL
);
23 struct itimerspec its2
;
24 res
= timerfd_settime(fd
, 0, &its
, &its2
);
26 assert(its2
.it_interval
.tv_sec
== its
.it_interval
.tv_sec
);
27 assert(its2
.it_interval
.tv_nsec
== its
.it_interval
.tv_nsec
);
28 assert(its2
.it_value
.tv_sec
<= its
.it_value
.tv_sec
);
29 assert(its2
.it_value
.tv_nsec
<= its
.it_value
.tv_nsec
);
31 struct itimerspec its3
;
32 res
= timerfd_gettime(fd
, &its3
);
34 assert(its3
.it_interval
.tv_sec
== its
.it_interval
.tv_sec
);
35 assert(its3
.it_interval
.tv_nsec
== its
.it_interval
.tv_nsec
);
36 assert(its3
.it_value
.tv_sec
<= its
.it_value
.tv_sec
);
37 assert(its3
.it_value
.tv_nsec
<= its
.it_value
.tv_nsec
);
40 unsigned long long buf
;
41 res
= read(fd
, &buf
, sizeof(buf
));