1 /* { dg-set-target-env-var OMP_PROC_BIND "spread,close" } */
2 /* { dg-set-target-env-var OMP_PLACES "cores" } */
3 /* { dg-set-target-env-var OMP_NUM_THREADS "4" } */
4 /* { dg-set-target-env-var OMP_AFFINITY_FORMAT "hello" } */
13 #define FMT "L:%0.5L%%%n>%32H<!%.33{host}!%.6P_%i_%0.18i_%0.7{ancestor_tnum} %18A"
14 char buf
[] = FMT
, hostname
[256], buf2
[512 + 32], *q
;
16 char *r
= getenv ("OMP_AFFINITY_FORMAT");
17 if (r
&& strcmp (r
, "hello") == 0)
19 if (omp_get_affinity_format (NULL
, 0) != 5)
21 if (omp_get_affinity_format (buf2
, 3) != 5
22 || strcmp (buf2
, "he") != 0)
24 if (omp_get_affinity_format (buf2
, 6) != 5
25 || strcmp (buf2
, "hello") != 0)
28 omp_set_affinity_format (buf
);
29 memset (buf
, '^', sizeof (buf
));
30 if (omp_get_affinity_format (NULL
, 0) != sizeof (buf
) - 1)
32 if (omp_get_affinity_format (buf
, 3) != sizeof (buf
) - 1
33 || buf
[0] != FMT
[0] || buf
[1] != FMT
[1] || buf
[2] != '\0')
35 memset (buf
, ' ', sizeof (buf
));
36 if (omp_get_affinity_format (buf
, sizeof (buf
) - 1) != sizeof (buf
) - 1
37 || strncmp (buf
, FMT
, sizeof (buf
) - 2) != 0
38 || buf
[sizeof (buf
) - 2] != '\0')
40 memset (buf
, '-', sizeof (buf
));
41 if (omp_get_affinity_format (buf
, sizeof (buf
)) != sizeof (buf
) - 1
42 || strcmp (buf
, FMT
) != 0)
44 memset (buf
, '0', sizeof (buf
));
45 omp_display_affinity (NULL
);
46 omp_display_affinity ("");
47 omp_display_affinity ("%%%0.9N");
48 omp_set_affinity_format ("%{host}");
49 l
= omp_capture_affinity (hostname
, sizeof hostname
, NULL
);
50 if (l
< sizeof (hostname
))
52 if (strlen (hostname
) != l
)
54 l2
= omp_capture_affinity (NULL
, 0,
55 "%0.5{nesting_level}%%%32{host}|||%.33H"
57 if (l2
!= (5 + 1 + (l
> 32 ? l
: 32) + 3 + (l
> 33 ? l
: 33)
60 omp_set_affinity_format ("%.5L%%%32H|||%.33{host}%0.7{ancestor_tnum}"
61 "%3{num_threads}!%{num_threads}!");
62 l3
= omp_capture_affinity (buf2
, sizeof buf2
, "");
65 if (memcmp (buf2
, " 0%", 5 + 1) != 0)
68 if (memcmp (q
, hostname
, l
) != 0)
72 for (l3
= 32 - l
; l3
; l3
--)
75 if (memcmp (q
, "|||", 3) != 0)
79 for (l3
= 33 - l
; l3
; l3
--)
82 if (memcmp (q
, hostname
, l
) != 0)
85 if (strcmp (q
, "-0000011 !1!") != 0)
88 #pragma omp parallel num_threads (4) proc_bind(spread)
89 omp_display_affinity ("%0.2a!%n!%.4L!%N;%.2t;%0.2T;%{team_num};%{num_teams};%A");