xref: /llvm-project/libc/test/src/sys/select/select_failure_test.cpp (revision 46944b0cbc9a9d8daad0182c40fcd3560bc9ca35)
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