#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"