glibc/posix/tst-cpuset.c
Ulrich Drepper 44f08a6ecc * posix/Makefile (routines): Add sched_cpualloc and sched_cpufree.
(tests): Add tst-cpuset.
	* posix/sched_cpualloc.c: New file.
	* posix/sched_cpufree.c: New file.
	* posix/tst-cpuset.c: New file.
	* posix/Versions: Export __sched_cpualloc and __sched_cpufree for
	GLIBC_2.7.
	* sysdeps/unix/sysv/linux/bits/sched.h: Define __CPU_*_S macros.
	* posix/sched.h: Define old CPU_* macros in temers of __CPU_*_S
	macros.  Define CPU_*_S macros.
2007-07-29 22:24:44 +00:00

83 lines
1.5 KiB
C

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