1// RUN: %libomp-compile-and-run
2#include <stdio.h>
3#include <stdlib.h>
4#include "omp_testsuite.h"
5#include "omp_my_sleep.h"
6
7#define NTIMES 100
8
9#define ASSERT_CMP(lhs, cmp, rhs) \
10 if (!((lhs)cmp(rhs))) { \
11 printf("Expected: (" #lhs ") " #cmp " (" #rhs "), actual: %e vs. %e", lhs, \
12 rhs); \
13 return EXIT_FAILURE; \
14 }
15
16int main() {
17 int i;
18
19 for (i = 0; i < NTIMES; i++) {
20 double start = omp_get_wtime(), end;
21 ASSERT_CMP(start, >=, 0.0);
22 for (end = omp_get_wtime(); end == start; end = omp_get_wtime()) {
23 ASSERT_CMP(end, >=, 0.0);
24 }
25 ASSERT_CMP(end, >=, 0.0);
26 ASSERT_CMP(end, >, start);
27 }
28
29 return EXIT_SUCCESS;
30}
31

source code of openmp/runtime/test/api/omp_get_wtime.c