1 #include <sched.h>
2 #include <stdio.h>
3 
4 static int
do_test(void)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"
83