summaryrefslogtreecommitdiffstats
path: root/openmp/runtime/test/affinity/format/api.c
diff options
context:
space:
mode:
Diffstat (limited to 'openmp/runtime/test/affinity/format/api.c')
-rw-r--r--openmp/runtime/test/affinity/format/api.c56
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
OpenPOWER on IntegriCloud