IA64: Move NPTL public headers to sysdeps/ia64/nptl/.
[platform/upstream/glibc.git] / posix / tst-cpuset.c
1 #include <sched.h>
2 #include <stdio.h>
3
4 static int
5 do_test (void)
6 {
7   int result = 0;
8
9   cpu_set_t s1;
10   cpu_set_t s2;
11   cpu_set_t s3;
12
13   CPU_ZERO (&s1);
14   CPU_SET (0, &s1);
15
16   CPU_ZERO (&s2);
17   CPU_SET (0, &s2);
18   CPU_SET (1, &s2);
19
20   CPU_AND (&s3, &s1, &s2);
21   if (! CPU_EQUAL (&s3, &s1))
22     {
23       puts ("result of CPU_AND wrong");
24       result = 1;
25     }
26
27   CPU_OR (&s3, &s1, &s2);
28   if (! CPU_EQUAL (&s3, &s2))
29     {
30       puts ("result of CPU_OR wrong");
31       result = 1;
32     }
33
34   CPU_XOR (&s3, &s1, &s2);
35   if (CPU_COUNT (&s3) != 1)
36     {
37       puts ("result of CPU_XOR wrong");
38       result = 1;
39     }
40
41   cpu_set_t *vs1 = CPU_ALLOC (2048);
42   cpu_set_t *vs2 = CPU_ALLOC (2048);
43   cpu_set_t *vs3 = CPU_ALLOC (2048);
44   size_t vssize = CPU_ALLOC_SIZE (2048);
45
46   CPU_ZERO_S (vssize, vs1);
47   CPU_SET_S (0, vssize, vs1);
48
49   CPU_ZERO_S (vssize, vs2);
50   CPU_SET_S (0, vssize, vs2);
51   CPU_SET_S (2047, vssize, vs2);
52
53   CPU_AND_S (vssize, vs3, vs1, vs2);
54   if (! CPU_EQUAL_S (vssize, vs3, vs1))
55     {
56       puts ("result of CPU_AND_S wrong");
57       result = 1;
58     }
59
60   CPU_OR_S (vssize, vs3, vs1, vs2);
61   if (! CPU_EQUAL_S (vssize, vs3, vs2))
62     {
63       puts ("result of CPU_OR_S wrong");
64       result = 1;
65     }
66
67   CPU_XOR_S (vssize, vs3, vs1, vs2);
68   if (CPU_COUNT_S (vssize, vs3) != 1)
69     {
70       puts ("result of CPU_XOR_S wrong");
71       result = 1;
72     }
73
74   CPU_FREE (vs1);
75   CPU_FREE (vs2);
76   CPU_FREE (vs3);
77
78   return result;
79 }
80
81 #define TEST_FUNCTION do_test ()
82 #include "../test-skeleton.c"