1 | //===-- PipeTest.cpp ------------------------------------------------------===// |
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | |
9 | #include "lldb/Host/Pipe.h" |
10 | #include "TestingSupport/SubsystemRAII.h" |
11 | #include "lldb/Host/FileSystem.h" |
12 | #include "lldb/Host/HostInfo.h" |
13 | #include "gtest/gtest.h" |
14 | |
15 | using namespace lldb_private; |
16 | |
17 | class PipeTest : public testing::Test { |
18 | public: |
19 | SubsystemRAII<FileSystem, HostInfo> subsystems; |
20 | }; |
21 | |
22 | TEST_F(PipeTest, CreateWithUniqueName) { |
23 | Pipe pipe; |
24 | llvm::SmallString<0> name; |
25 | ASSERT_THAT_ERROR(pipe.CreateWithUniqueName("PipeTest-CreateWithUniqueName" , |
26 | /*child_process_inherit=*/false, |
27 | name) |
28 | .ToError(), |
29 | llvm::Succeeded()); |
30 | } |
31 | |
32 | // Test broken |
33 | #ifndef _WIN32 |
34 | TEST_F(PipeTest, OpenAsReader) { |
35 | Pipe pipe; |
36 | llvm::SmallString<0> name; |
37 | ASSERT_THAT_ERROR(pipe.CreateWithUniqueName("PipeTest-OpenAsReader" , |
38 | /*child_process_inherit=*/false, |
39 | name) |
40 | .ToError(), |
41 | llvm::Succeeded()); |
42 | |
43 | // Ensure name is not null-terminated |
44 | size_t name_len = name.size(); |
45 | name += "foobar" ; |
46 | llvm::StringRef name_ref(name.data(), name_len); |
47 | ASSERT_THAT_ERROR( |
48 | pipe.OpenAsReader(name_ref, /*child_process_inherit=*/false).ToError(), |
49 | llvm::Succeeded()); |
50 | } |
51 | #endif |
52 | |