1be4e4257SSiva Chandra Reddy //===-- Failure unittests for select --------------------------------------===// 2be4e4257SSiva Chandra Reddy // 3be4e4257SSiva Chandra Reddy // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4be4e4257SSiva Chandra Reddy // See https://llvm.org/LICENSE.txt for license information. 5be4e4257SSiva Chandra Reddy // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6be4e4257SSiva Chandra Reddy // 7be4e4257SSiva Chandra Reddy //===----------------------------------------------------------------------===// 8be4e4257SSiva Chandra Reddy 9be4e4257SSiva Chandra Reddy #include "src/sys/select/select.h" 10be4e4257SSiva Chandra Reddy #include "src/unistd/read.h" 114f1fe19dSSiva Chandra Reddy #include "test/UnitTest/ErrnoSetterMatcher.h" 12af1315c2SSiva Chandra Reddy #include "test/UnitTest/Test.h" 13be4e4257SSiva Chandra Reddy 14be4e4257SSiva Chandra Reddy #include <sys/select.h> 15be4e4257SSiva Chandra Reddy #include <unistd.h> 16be4e4257SSiva Chandra Reddy 17*b6bc9d72SGuillaume Chatelet using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails; 18be4e4257SSiva Chandra Reddy 19be4e4257SSiva Chandra Reddy TEST(LlvmLibcSelectTest, SelectInvalidFD) { 20be4e4257SSiva Chandra Reddy fd_set set; 21be4e4257SSiva Chandra Reddy FD_ZERO(&set); 22be4e4257SSiva Chandra Reddy struct timeval timeout { 23be4e4257SSiva Chandra Reddy 0, 0 24be4e4257SSiva Chandra Reddy }; 25*b6bc9d72SGuillaume Chatelet ASSERT_THAT(LIBC_NAMESPACE::select(-1, &set, nullptr, nullptr, &timeout), 26be4e4257SSiva Chandra Reddy Fails(EINVAL)); 27be4e4257SSiva Chandra Reddy } 28