blob: 3ade3895e0833ace5b62a84d624da7aaea1871de [file] [log] [blame]
Jim Cownie18d84732014-05-10 17:02:09 +00001<ompts:test>
2<ompts:testdescription>Test which checks the omp_set_nest_lock and the omp_unset_nest_lock function.</ompts:testdescription>
3<ompts:ompversion>2.0</ompts:ompversion>
4<ompts:directive>omp_nest_lock</ompts:directive>
5<ompts:dependences>omp flush</ompts:dependences>
6<ompts:testcode>
7#include <stdio.h>
8#include "omp_testsuite.h"
9
10omp_nest_lock_t lck;
11
12int <ompts:testcode:functionname>omp_nest_lock</ompts:testcode:functionname>(FILE * logFile)
13{
14 int nr_threads_in_single = 0;
15 int result = 0;
16 int nr_iterations = 0;
17 int i;
18
19 omp_init_nest_lock (&lck);
20
21#pragma omp parallel shared(lck)
22 {
23#pragma omp for
24 for(i = 0; i < LOOPCOUNT; i++)
25 {
26 <ompts:orphan>
27 <ompts:check>omp_set_nest_lock (&lck);</ompts:check>
28 </ompts:orphan>
29#pragma omp flush
30 nr_threads_in_single++;
31#pragma omp flush
32 nr_iterations++;
33 nr_threads_in_single--;
34 result = result + nr_threads_in_single;
35 <ompts:orphan>
36 <ompts:check>omp_unset_nest_lock (&lck);</ompts:check>
37 </ompts:orphan>
38 }
39 }
40 omp_destroy_nest_lock (&lck);
41
42 return ((result == 0) && (nr_iterations == LOOPCOUNT));
43}
44</ompts:testcode>
45</ompts:test>