//===-- PipeTest.cpp ------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "lldb/Host/Pipe.h" #include "TestingSupport/SubsystemRAII.h" #include "lldb/Host/FileSystem.h" #include "lldb/Host/HostInfo.h" #include "gtest/gtest.h" using namespace lldb_private; class PipeTest : public testing::Test { public: SubsystemRAII subsystems; }; TEST_F(PipeTest, CreateWithUniqueName) { Pipe pipe; llvm::SmallString<0> name; ASSERT_THAT_ERROR(pipe.CreateWithUniqueName("PipeTest-CreateWithUniqueName", /*child_process_inherit=*/false, name) .ToError(), llvm::Succeeded()); } // Test broken #ifndef _WIN32 TEST_F(PipeTest, OpenAsReader) { Pipe pipe; llvm::SmallString<0> name; ASSERT_THAT_ERROR(pipe.CreateWithUniqueName("PipeTest-OpenAsReader", /*child_process_inherit=*/false, name) .ToError(), llvm::Succeeded()); // Ensure name is not null-terminated size_t name_len = name.size(); name += "foobar"; llvm::StringRef name_ref(name.data(), name_len); ASSERT_THAT_ERROR( pipe.OpenAsReader(name_ref, /*child_process_inherit=*/false).ToError(), llvm::Succeeded()); } #endif