brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · d8b3f01 Raw
56 lines · cpp
1//===-- Unittests for clock_getres- ---------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "hdr/time_macros.h"10#include "src/time/clock_getres.h"11#include "test/UnitTest/ErrnoSetterMatcher.h"12#include "test/UnitTest/Test.h"13 14using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;15using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;16 17TEST(LlvmLibcClockGetRes, Invalid) {18  timespec tp;19  EXPECT_THAT(LIBC_NAMESPACE::clock_getres(-1, &tp), Fails(EINVAL));20}21 22TEST(LlvmLibcClockGetRes, NullSpec) {23  EXPECT_THAT(LIBC_NAMESPACE::clock_getres(CLOCK_REALTIME, nullptr),24              Succeeds());25}26 27TEST(LlvmLibcClockGetRes, Realtime) {28  timespec tp;29  EXPECT_THAT(LIBC_NAMESPACE::clock_getres(CLOCK_REALTIME, &tp), Succeeds());30  EXPECT_GE(tp.tv_sec, static_cast<decltype(tp.tv_sec)>(0));31  EXPECT_GE(tp.tv_nsec, static_cast<decltype(tp.tv_nsec)>(0));32}33 34TEST(LlvmLibcClockGetRes, Monotonic) {35  timespec tp;36  ASSERT_THAT(LIBC_NAMESPACE::clock_getres(CLOCK_MONOTONIC, &tp), Succeeds());37  EXPECT_GE(tp.tv_sec, static_cast<decltype(tp.tv_sec)>(0));38  EXPECT_GE(tp.tv_nsec, static_cast<decltype(tp.tv_nsec)>(0));39}40 41TEST(LlvmLibcClockGetRes, ProcessCpuTime) {42  timespec tp;43  ASSERT_THAT(LIBC_NAMESPACE::clock_getres(CLOCK_PROCESS_CPUTIME_ID, &tp),44              Succeeds());45  EXPECT_GE(tp.tv_sec, static_cast<decltype(tp.tv_sec)>(0));46  EXPECT_GE(tp.tv_nsec, static_cast<decltype(tp.tv_nsec)>(0));47}48 49TEST(LlvmLibcClockGetRes, ThreadCpuTime) {50  timespec tp;51  ASSERT_THAT(LIBC_NAMESPACE::clock_getres(CLOCK_THREAD_CPUTIME_ID, &tp),52              Succeeds());53  EXPECT_GE(tp.tv_sec, static_cast<decltype(tp.tv_sec)>(0));54  EXPECT_GE(tp.tv_nsec, static_cast<decltype(tp.tv_nsec)>(0));55}56