| #include <sched.h> |
| #include <stdio.h> |
| |
| static int |
| do_test (void) |
| { |
| int result = 0; |
| |
| cpu_set_t s1; |
| cpu_set_t s2; |
| cpu_set_t s3; |
| |
| CPU_ZERO (&s1); |
| CPU_SET (0, &s1); |
| |
| CPU_ZERO (&s2); |
| CPU_SET (0, &s2); |
| CPU_SET (1, &s2); |
| |
| CPU_AND (&s3, &s1, &s2); |
| if (! CPU_EQUAL (&s3, &s1)) |
| { |
| puts ("result of CPU_AND wrong"); |
| result = 1; |
| } |
| |
| CPU_OR (&s3, &s1, &s2); |
| if (! CPU_EQUAL (&s3, &s2)) |
| { |
| puts ("result of CPU_OR wrong"); |
| result = 1; |
| } |
| |
| CPU_XOR (&s3, &s1, &s2); |
| if (CPU_COUNT (&s3) != 1) |
| { |
| puts ("result of CPU_XOR wrong"); |
| result = 1; |
| } |
| |
| cpu_set_t *vs1 = CPU_ALLOC (2048); |
| cpu_set_t *vs2 = CPU_ALLOC (2048); |
| cpu_set_t *vs3 = CPU_ALLOC (2048); |
| size_t vssize = CPU_ALLOC_SIZE (2048); |
| |
| CPU_ZERO_S (vssize, vs1); |
| CPU_SET_S (0, vssize, vs1); |
| |
| CPU_ZERO_S (vssize, vs2); |
| CPU_SET_S (0, vssize, vs2); |
| CPU_SET_S (2047, vssize, vs2); |
| |
| CPU_AND_S (vssize, vs3, vs1, vs2); |
| if (! CPU_EQUAL_S (vssize, vs3, vs1)) |
| { |
| puts ("result of CPU_AND_S wrong"); |
| result = 1; |
| } |
| |
| CPU_OR_S (vssize, vs3, vs1, vs2); |
| if (! CPU_EQUAL_S (vssize, vs3, vs2)) |
| { |
| puts ("result of CPU_OR_S wrong"); |
| result = 1; |
| } |
| |
| CPU_XOR_S (vssize, vs3, vs1, vs2); |
| if (CPU_COUNT_S (vssize, vs3) != 1) |
| { |
| puts ("result of CPU_XOR_S wrong"); |
| result = 1; |
| } |
| |
| CPU_FREE (vs1); |
| CPU_FREE (vs2); |
| CPU_FREE (vs3); |
| |
| return result; |
| } |
| |
| #define TEST_FUNCTION do_test () |
| #include "../test-skeleton.c" |