1*defd0d96SSchrodinger ZHU Yifan //===-- Unittests for getentropy ------------------------------------------===// 2*defd0d96SSchrodinger ZHU Yifan // 3*defd0d96SSchrodinger ZHU Yifan // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*defd0d96SSchrodinger ZHU Yifan // See https://llvm.org/LICENSE.txt for license information. 5*defd0d96SSchrodinger ZHU Yifan // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*defd0d96SSchrodinger ZHU Yifan // 7*defd0d96SSchrodinger ZHU Yifan //===----------------------------------------------------------------------===// 8*defd0d96SSchrodinger ZHU Yifan 9*defd0d96SSchrodinger ZHU Yifan #include "hdr/errno_macros.h" 10*defd0d96SSchrodinger ZHU Yifan #include "src/unistd/getentropy.h" 11*defd0d96SSchrodinger ZHU Yifan #include "test/UnitTest/ErrnoSetterMatcher.h" 12*defd0d96SSchrodinger ZHU Yifan #include "test/UnitTest/Test.h" 13*defd0d96SSchrodinger ZHU Yifan 14*defd0d96SSchrodinger ZHU Yifan using namespace LIBC_NAMESPACE::testing::ErrnoSetterMatcher; 15*defd0d96SSchrodinger ZHU Yifan 16*defd0d96SSchrodinger ZHU Yifan TEST(LlvmLibcUnistdGetEntropyTest, LengthTooLong) { 17*defd0d96SSchrodinger ZHU Yifan char buf[1024]; 18*defd0d96SSchrodinger ZHU Yifan ASSERT_THAT(LIBC_NAMESPACE::getentropy(buf, 257), Fails(EIO)); 19*defd0d96SSchrodinger ZHU Yifan } 20*defd0d96SSchrodinger ZHU Yifan 21*defd0d96SSchrodinger ZHU Yifan TEST(LlvmLibcUnistdGetEntropyTest, SmokeTest) { 22*defd0d96SSchrodinger ZHU Yifan char buf[256]; 23*defd0d96SSchrodinger ZHU Yifan ASSERT_THAT(LIBC_NAMESPACE::getentropy(buf, 256), Succeeds()); 24*defd0d96SSchrodinger ZHU Yifan } 25*defd0d96SSchrodinger ZHU Yifan 26*defd0d96SSchrodinger ZHU Yifan TEST(LlvmLibcUnistdGetEntropyTest, OtherError) { 27*defd0d96SSchrodinger ZHU Yifan ASSERT_THAT(LIBC_NAMESPACE::getentropy(nullptr, 1), Fails(EIO)); 28*defd0d96SSchrodinger ZHU Yifan } 29