1*6219c808SDuncan //===-- Unittests for pipe2 -----------------------------------------------===// 2*6219c808SDuncan // 3*6219c808SDuncan // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*6219c808SDuncan // See https://llvm.org/LICENSE.txt for license information. 5*6219c808SDuncan // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*6219c808SDuncan // 7*6219c808SDuncan //===----------------------------------------------------------------------===// 8*6219c808SDuncan #include "src/errno/libc_errno.h" 9*6219c808SDuncan #include "src/unistd/close.h" 10*6219c808SDuncan #include "src/unistd/pipe2.h" 11*6219c808SDuncan 12*6219c808SDuncan #include "test/UnitTest/ErrnoSetterMatcher.h" 13*6219c808SDuncan #include "test/UnitTest/Test.h" 14*6219c808SDuncan 15*6219c808SDuncan using namespace LIBC_NAMESPACE::testing::ErrnoSetterMatcher; 16*6219c808SDuncan 17*6219c808SDuncan TEST(LlvmLibcPipe2Test, SmokeTest) { 18*6219c808SDuncan int pipefd[2]; 19*6219c808SDuncan ASSERT_THAT(LIBC_NAMESPACE::pipe2(pipefd, 0), Succeeds()); 20*6219c808SDuncan ASSERT_THAT(LIBC_NAMESPACE::close(pipefd[0]), Succeeds()); 21*6219c808SDuncan ASSERT_THAT(LIBC_NAMESPACE::close(pipefd[1]), Succeeds()); 22*6219c808SDuncan } 23*6219c808SDuncan 24*6219c808SDuncan TEST(LlvmLibcPipe2ErrTest, SmokeTest) { 25*6219c808SDuncan int pipefd[2]; 26*6219c808SDuncan ASSERT_THAT(LIBC_NAMESPACE::pipe2(pipefd, -1), Fails(EINVAL)); 27*6219c808SDuncan ASSERT_THAT(LIBC_NAMESPACE::pipe2(nullptr, 0), Fails(EFAULT)); 28*6219c808SDuncan } 29