blob: b35e917094ba8ed3eb32b94ab835f380c3e7736b [file]
//===-- Unittests for sched -----------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#include "test/UnitTest/Test.h"
#include <sched.h>
template <typename T, typename U> struct SameType {
static constexpr bool value = false;
};
template <typename T> struct SameType<T, T> {
static constexpr bool value = true;
};
TEST(LlvmLibcSchedTest, HeaderInterface) {
// Use unevaluated contexts to verify the public macro declarations without
// requiring this include test to link the helper entrypoints.
static_assert(SameType<decltype(CPU_ZERO((cpu_set_t *)0)), void>::value, "");
static_assert(SameType<decltype(CPU_COUNT((cpu_set_t *)0)), int>::value, "");
static_assert(SameType<decltype(CPU_SET(0, (cpu_set_t *)0)), void>::value,
"");
static_assert(SameType<decltype(CPU_ISSET(0, (cpu_set_t *)0)), int>::value,
"");
using SchedGetSchedulerT = int(pid_t) noexcept;
using SchedSetSchedulerT =
int(pid_t, int, const struct sched_param *) noexcept;
static_assert(
SameType<decltype(sched_getscheduler), SchedGetSchedulerT>::value, "");
static_assert(
SameType<decltype(sched_setscheduler), SchedSetSchedulerT>::value, "");
}