summaryrefslogtreecommitdiffstats
path: root/lldb/unittests/Editline/EditlineTest.cpp
diff options
context:
space:
mode:
authorTodd Fiala <todd.fiala@gmail.com>2016-01-22 21:58:55 +0000
committerTodd Fiala <todd.fiala@gmail.com>2016-01-22 21:58:55 +0000
commit16c4e16c35a2f360b38e8c36a32a1a17ff4fcc85 (patch)
tree6145648251d295ecc0ee53dd2f4d0bb95166497f /lldb/unittests/Editline/EditlineTest.cpp
parent721d21b821854efe6dd2a3597e502abae9afa194 (diff)
downloadbcm5719-llvm-16c4e16c35a2f360b38e8c36a32a1a17ff4fcc85.tar.gz
bcm5719-llvm-16c4e16c35a2f360b38e8c36a32a1a17ff4fcc85.zip
added test fixture to EditlineTest gtest
Primarily a trial test for me to try out the git clang-format integration. Works like a charm! This change adds a gtest fixture for the EditlineTest common setup and teardown code. llvm-svn: 258565
Diffstat (limited to 'lldb/unittests/Editline/EditlineTest.cpp')
-rw-r--r--lldb/unittests/Editline/EditlineTest.cpp67
1 files changed, 35 insertions, 32 deletions
diff --git a/lldb/unittests/Editline/EditlineTest.cpp b/lldb/unittests/Editline/EditlineTest.cpp
index d82ef4c17c7..cc515b97db4 100644
--- a/lldb/unittests/Editline/EditlineTest.cpp
+++ b/lldb/unittests/Editline/EditlineTest.cpp
@@ -1,4 +1,4 @@
-//===-- EditlineTest.cpp -----------------------------------------*- C++ -*-===//
+//===-- EditlineTest.cpp ----------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
@@ -293,49 +293,55 @@ EditlineAdapter::ConsumeAllOutput ()
}
}
-TEST (EditlineTest, EditlineReceivesSingleLineText)
+class EditlineTestFixture : public ::testing::Test
{
- setenv ("TERM", "vt100", 1);
+private:
+ EditlineAdapter _el_adapter;
+ std::shared_ptr<std::thread> _sp_output_thread;
- // Create an editline.
- EditlineAdapter el_adapter;
- EXPECT_TRUE (el_adapter.IsValid ());
- if (!el_adapter.IsValid ())
- return;
+public:
+ void SetUp()
+ {
+ // We need a TERM set properly for editline to work as expected.
+ setenv("TERM", "vt100", 1);
+
+ // Validate the editline adapter.
+ EXPECT_TRUE(_el_adapter.IsValid());
+ if (!_el_adapter.IsValid())
+ return;
+
+ // Dump output.
+ _sp_output_thread.reset(new std::thread([&] { _el_adapter.ConsumeAllOutput(); }));
+ }
+
+ void TearDown()
+ {
+ _el_adapter.CloseInput();
+ if (_sp_output_thread)
+ _sp_output_thread->join();
+ }
- // Dump output.
- std::thread el_output_thread( [&] { el_adapter.ConsumeAllOutput (); });
+ EditlineAdapter &GetEditlineAdapter() { return _el_adapter; }
+};
+TEST_F(EditlineTestFixture, EditlineReceivesSingleLineText)
+{
// Send it some text via our virtual keyboard.
const std::string input_text ("Hello, world");
- EXPECT_TRUE (el_adapter.SendLine (input_text));
+ EXPECT_TRUE(GetEditlineAdapter().SendLine(input_text));
// Verify editline sees what we put in.
std::string el_reported_line;
bool input_interrupted = false;
- const bool received_line = el_adapter.GetLine (el_reported_line, input_interrupted, TIMEOUT_MILLIS);
+ const bool received_line = GetEditlineAdapter().GetLine(el_reported_line, input_interrupted, TIMEOUT_MILLIS);
EXPECT_TRUE (received_line);
EXPECT_FALSE (input_interrupted);
EXPECT_EQ (input_text, el_reported_line);
-
- el_adapter.CloseInput();
- el_output_thread.join();
}
-TEST (EditlineTest, EditlineReceivesMultiLineText)
+TEST_F(EditlineTestFixture, EditlineReceivesMultiLineText)
{
- setenv ("TERM", "vt100", 1);
-
- // Create an editline.
- EditlineAdapter el_adapter;
- EXPECT_TRUE (el_adapter.IsValid ());
- if (!el_adapter.IsValid ())
- return;
-
- // Stick editline output/error dumpers on separate threads.
- std::thread el_output_thread( [&] { el_adapter.ConsumeAllOutput (); });
-
// Send it some text via our virtual keyboard.
std::vector<std::string> input_lines;
input_lines.push_back ("int foo()");
@@ -344,13 +350,13 @@ TEST (EditlineTest, EditlineReceivesMultiLineText)
input_lines.push_back ("}");
input_lines.push_back ("");
- EXPECT_TRUE (el_adapter.SendLines (input_lines));
+ EXPECT_TRUE(GetEditlineAdapter().SendLines(input_lines));
// Verify editline sees what we put in.
lldb_private::StringList el_reported_lines;
bool input_interrupted = false;
- EXPECT_TRUE (el_adapter.GetLines (el_reported_lines, input_interrupted, TIMEOUT_MILLIS));
+ EXPECT_TRUE(GetEditlineAdapter().GetLines(el_reported_lines, input_interrupted, TIMEOUT_MILLIS));
EXPECT_FALSE (input_interrupted);
// Without any auto indentation support, our output should directly match our input.
@@ -360,9 +366,6 @@ TEST (EditlineTest, EditlineReceivesMultiLineText)
for (auto i = 0; i < input_lines.size(); ++i)
EXPECT_EQ (input_lines[i], el_reported_lines[i]);
}
-
- el_adapter.CloseInput();
- el_output_thread.join();
}
#endif
OpenPOWER on IntegriCloud