Imported Upstream version 4.8.1
[platform/upstream/gcc48.git] / libgomp / testsuite / libgomp.c / parallel-1.c
1 /* Trivial test of thread startup.  */
2
3 #include <omp.h>
4 #include <string.h>
5 #include <assert.h>
6 #include "libgomp_g.h"
7
8
9 static int nthr;
10 static int saw[4];
11
12 static void function(void *dummy)
13 {
14   int iam = omp_get_thread_num ();
15
16   if (iam == 0)
17     nthr = omp_get_num_threads ();
18
19   saw[iam] = 1;
20 }
21
22 int main()
23 {
24   omp_set_dynamic (0);
25
26   GOMP_parallel_start (function, NULL, 2);
27   function (NULL);
28   GOMP_parallel_end ();
29
30   assert (nthr == 2);
31   assert (saw[0] != 0);
32   assert (saw[1] != 0);
33   assert (saw[2] == 0);
34
35   memset (saw, 0, sizeof (saw));
36   
37   GOMP_parallel_start (function, NULL, 3);
38   function (NULL);
39   GOMP_parallel_end ();
40
41   assert (nthr == 3);
42   assert (saw[0] != 0);
43   assert (saw[1] != 0);
44   assert (saw[2] != 0);
45   assert (saw[3] == 0);
46
47   return 0;
48 }