1 // RUN: %libomp-compile && env OMP_DISPLAY_AFFINITY=true %libomp-run | %python %S/check.py -c 'CHECK' %s
2 
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <omp.h>
6 
7 int main(int argc, char** argv) {
8   omp_set_affinity_format("TESTER: tl:%L at:%a tn:%n nt:%N");
9   omp_set_nested(1);
10   #pragma omp parallel num_threads(1)
11   {
12     #pragma omp parallel num_threads(2)
13     { }
14     #pragma omp parallel num_threads(2)
15     {
16       #pragma omp parallel num_threads(1)
17       {
18         #pragma omp parallel num_threads(2)
19         { }
20       }
21     }
22     #pragma omp parallel num_threads(1)
23     { }
24   }
25   #pragma omp parallel num_threads(2)
26   { }
27   #pragma omp parallel num_threads(1)
28   { }
29   return 0;
30 }
31 
32 // CHECK: num_threads=1 TESTER: tl:1 at:0 tn:0 nt:1
33 
34 // CHECK: num_threads=2 TESTER: tl:2 at:[0-9] tn:[01] nt:2
35 
36 // CHECK: num_threads=1 TESTER: tl:3 at:[0-9] tn:0 nt:1
37 // CHECK: num_threads=1 TESTER: tl:3 at:[0-9] tn:0 nt:1
38 
39 // CHECK: num_threads=2 TESTER: tl:4 at:[0-9] tn:[01] nt:2
40 // CHECK: num_threads=2 TESTER: tl:4 at:[0-9] tn:[01] nt:2
41 
42 // CHECK: num_threads=1 TESTER: tl:2 at:[0-9] tn:0 nt:1
43 
44 // CHECK: num_threads=2 TESTER: tl:1 at:[0-9] tn:[01] nt:2
45 
46 // CHECK: num_threads=1 TESTER: tl:1 at:[0-9] tn:0 nt:1
47