diff options
Diffstat (limited to 'openmp/runtime/test/affinity/format/api.c')
| -rw-r--r-- | openmp/runtime/test/affinity/format/api.c | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/openmp/runtime/test/affinity/format/api.c b/openmp/runtime/test/affinity/format/api.c new file mode 100644 index 00000000000..df6be668021 --- /dev/null +++ b/openmp/runtime/test/affinity/format/api.c @@ -0,0 +1,56 @@ +// RUN: %libomp-compile-and-run +// RUN: %libomp-run | python %S/check.py -c 'CHECK' %s + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <omp.h> + +#define XSTR(x) #x +#define STR(x) XSTR(x) + +#define streqls(s1, s2) (!strcmp(s1, s2)) + +#define check(condition) \ + if (!(condition)) { \ + fprintf(stderr, "error: %s: %d: " STR(condition) "\n", __FILE__, \ + __LINE__); \ + exit(1); \ + } + +#define BUFFER_SIZE 1024 + +int main(int argc, char** argv) { + char buf[BUFFER_SIZE]; + size_t needed; + + omp_set_affinity_format("0123456789"); + + needed = omp_get_affinity_format(buf, BUFFER_SIZE); + check(streqls(buf, "0123456789")); + check(needed == 10) + + // Check that it is truncated properly + omp_get_affinity_format(buf, 5); + check(streqls(buf, "0123")); + + #pragma omp parallel + { + char my_buf[512]; + size_t needed = omp_capture_affinity(my_buf, 512, NULL); + check(streqls(my_buf, "0123456789")); + check(needed == 10); + // Check that it is truncated properly + omp_capture_affinity(my_buf, 5, NULL); + check(streqls(my_buf, "0123")); + } + + #pragma omp parallel num_threads(4) + { + omp_display_affinity(NULL); + } + + return 0; +} + +// CHECK: num_threads=4 0123456789 |

