1614c7ef8SJonathan Peyton // RUN: %libomp-compile-and-run
2614c7ef8SJonathan Peyton #include <stdio.h>
3614c7ef8SJonathan Peyton #include <stdlib.h>
4614c7ef8SJonathan Peyton #include "omp_testsuite.h"
5614c7ef8SJonathan Peyton #include "omp_my_sleep.h"
6614c7ef8SJonathan Peyton
7d39d3a32SPeyton, Jonathan L #define NTIMES 100
8d39d3a32SPeyton, Jonathan L
9*73682279SJoachim Protze #define ASSERT_CMP(lhs, cmp, rhs) \
10*73682279SJoachim Protze if (!((lhs)cmp(rhs))) { \
11*73682279SJoachim Protze printf("Expected: (" #lhs ") " #cmp " (" #rhs "), actual: %e vs. %e", lhs, \
12*73682279SJoachim Protze rhs); \
13*73682279SJoachim Protze return EXIT_FAILURE; \
14d39d3a32SPeyton, Jonathan L }
15614c7ef8SJonathan Peyton
main()16d39d3a32SPeyton, Jonathan L int main() {
17*73682279SJoachim Protze int i;
18d39d3a32SPeyton, Jonathan L
19d39d3a32SPeyton, Jonathan L for (i = 0; i < NTIMES; i++) {
20*73682279SJoachim Protze double start = omp_get_wtime(), end;
21*73682279SJoachim Protze ASSERT_CMP(start, >=, 0.0);
22*73682279SJoachim Protze for (end = omp_get_wtime(); end == start; end = omp_get_wtime()) {
23*73682279SJoachim Protze ASSERT_CMP(end, >=, 0.0);
24*73682279SJoachim Protze }
25*73682279SJoachim Protze ASSERT_CMP(end, >=, 0.0);
26*73682279SJoachim Protze ASSERT_CMP(end, >, start);
27614c7ef8SJonathan Peyton }
28d39d3a32SPeyton, Jonathan L
29d39d3a32SPeyton, Jonathan L return EXIT_SUCCESS;
30614c7ef8SJonathan Peyton }
31