Skip to content

Commit e89458d

Browse files
committed
[lldb] Fix PipeTest name collision in unit tests
We had two classes named `PipeTest`: one in `PipeTestUtilities.h` and one in `PipeTest.cpp`. The latter was unintentionally using the wrong class (from the header) which didn't initialize the HostInfo subsystem. This resulted in a crash due to a nullptr dereference (`g_fields`) when `PipePosix::CreateWithUniqueName` called `HostInfoBase::GetProcessTempDir`.
1 parent e9c9f8f commit e89458d

File tree

4 files changed

+5
-5
lines changed

4 files changed

+5
-5
lines changed

lldb/unittests/DAP/TestBase.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ using lldb_private::NativeFile;
2929
using lldb_private::Pipe;
3030

3131
void TransportBase::SetUp() {
32-
PipeTest::SetUp();
32+
PipePairTest::SetUp();
3333
to_dap = std::make_unique<Transport>(
3434
"to_dap", nullptr,
3535
std::make_shared<NativeFile>(input.GetReadFileDescriptor(),

lldb/unittests/DAP/TestBase.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ namespace lldb_dap_tests {
1818

1919
/// A base class for tests that need transport configured for communicating DAP
2020
/// messages.
21-
class TransportBase : public PipeTest {
21+
class TransportBase : public PipePairTest {
2222
protected:
2323
std::unique_ptr<lldb_dap::Transport> to_dap;
2424
std::unique_ptr<lldb_dap::Transport> from_dap;

lldb/unittests/Host/JSONTransportTest.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ using namespace llvm;
1414
using namespace lldb_private;
1515

1616
namespace {
17-
template <typename T> class JSONTransportTest : public PipeTest {
17+
template <typename T> class JSONTransportTest : public PipePairTest {
1818
protected:
1919
std::unique_ptr<JSONTransport> transport;
2020

2121
void SetUp() override {
22-
PipeTest::SetUp();
22+
PipePairTest::SetUp();
2323
transport = std::make_unique<T>(
2424
std::make_shared<NativeFile>(input.GetReadFileDescriptor(),
2525
File::eOpenOptionReadOnly,

lldb/unittests/TestingSupport/Host/PipeTestUtilities.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
#include "gtest/gtest.h"
1515

1616
/// A base class for tests that need a pair of pipes for communication.
17-
class PipeTest : public testing::Test {
17+
class PipePairTest : public testing::Test {
1818
protected:
1919
lldb_private::Pipe input;
2020
lldb_private::Pipe output;

0 commit comments

Comments
 (0)