1#include <sched.h>
2#include <stdio.h>
3
4static int
5do_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 (s: "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 (s: "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 (s: "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 (s: "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 (s: "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 (s: "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

source code of glibc/posix/tst-cpuset.c