blob: 9debd0f5b78a8ddb9436d3361548f2749698a4bd [file] [log] [blame]
/* -*- Mode: C; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */
#include "util.h"
int main(void) {
cpu_set_t* cpus;
cpu_set_t* cpus_out;
cpu_set_t* cpus_out_2;
ALLOCATE_GUARD(cpus, 'x');
CPU_ZERO(cpus);
CPU_SET(0, cpus);
test_assert(0 == sched_setaffinity(0, sizeof(*cpus), cpus));
VERIFY_GUARD(cpus);
ALLOCATE_GUARD(cpus_out, 'x');
test_assert(0 == sched_getaffinity(0, sizeof(*cpus_out), cpus_out));
/* We can't assert this because rr assigns us random affinity itself.
test_assert(0 == memcmp(cpus, cpus_out, sizeof(*cpus))); */
VERIFY_GUARD(cpus_out);
ALLOCATE_GUARD(cpus_out_2, 'y');
test_assert(0 == sched_getaffinity(0, sizeof(*cpus_out_2), cpus_out_2));
test_assert(0 == memcmp(cpus_out, cpus_out_2, sizeof(*cpus_out)));
VERIFY_GUARD(cpus_out_2);
atomic_puts("EXIT-SUCCESS");
return 0;
}