[Lldb-commits] [PATCH] D111402: [lldb] [test] Use secondary pty end for testing Terminal

2021-10-08 Thread Michał Górny via Phabricator via lldb-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rG71fd5a735ec2: [lldb] [test] Use secondary pty end for 
testing Terminal (authored by mgorny).
Herald added a project: LLDB.

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D111402/new/

https://reviews.llvm.org/D111402

Files:
  lldb/unittests/Host/posix/TerminalTest.cpp

Index: lldb/unittests/Host/posix/TerminalTest.cpp
===
--- lldb/unittests/Host/posix/TerminalTest.cpp
+++ lldb/unittests/Host/posix/TerminalTest.cpp
@@ -21,16 +21,22 @@
 class TerminalTest : public ::testing::Test {
 protected:
   PseudoTerminal m_pty;
+  int m_fd;
+  Terminal m_term;
 
   void SetUp() override {
-EXPECT_THAT_ERROR(m_pty.OpenFirstAvailablePrimary(O_RDWR | O_NOCTTY),
+ASSERT_THAT_ERROR(m_pty.OpenFirstAvailablePrimary(O_RDWR | O_NOCTTY),
   llvm::Succeeded());
+ASSERT_THAT_ERROR(m_pty.OpenSecondary(O_RDWR | O_NOCTTY),
+  llvm::Succeeded());
+m_fd = m_pty.GetSecondaryFileDescriptor();
+ASSERT_NE(m_fd, -1);
+m_term.SetFileDescriptor(m_fd);
   }
 };
 
 TEST_F(TerminalTest, PtyIsATerminal) {
-  Terminal term{m_pty.GetPrimaryFileDescriptor()};
-  EXPECT_EQ(term.IsATerminal(), true);
+  EXPECT_EQ(m_term.IsATerminal(), true);
 }
 
 TEST_F(TerminalTest, PipeIsNotATerminal) {
@@ -44,39 +50,35 @@
 
 TEST_F(TerminalTest, SetEcho) {
   struct termios terminfo;
-  Terminal term{m_pty.GetPrimaryFileDescriptor()};
 
-  ASSERT_EQ(term.SetEcho(true), true);
-  ASSERT_EQ(tcgetattr(m_pty.GetPrimaryFileDescriptor(), ), 0);
+  ASSERT_EQ(m_term.SetEcho(true), true);
+  ASSERT_EQ(tcgetattr(m_fd, ), 0);
   EXPECT_NE(terminfo.c_lflag & ECHO, 0U);
 
-  ASSERT_EQ(term.SetEcho(false), true);
-  ASSERT_EQ(tcgetattr(m_pty.GetPrimaryFileDescriptor(), ), 0);
+  ASSERT_EQ(m_term.SetEcho(false), true);
+  ASSERT_EQ(tcgetattr(m_fd, ), 0);
   EXPECT_EQ(terminfo.c_lflag & ECHO, 0U);
 }
 
 TEST_F(TerminalTest, SetCanonical) {
   struct termios terminfo;
-  Terminal term{m_pty.GetPrimaryFileDescriptor()};
 
-  ASSERT_EQ(term.SetCanonical(true), true);
-  ASSERT_EQ(tcgetattr(m_pty.GetPrimaryFileDescriptor(), ), 0);
+  ASSERT_EQ(m_term.SetCanonical(true), true);
+  ASSERT_EQ(tcgetattr(m_fd, ), 0);
   EXPECT_NE(terminfo.c_lflag & ICANON, 0U);
 
-  ASSERT_EQ(term.SetCanonical(false), true);
-  ASSERT_EQ(tcgetattr(m_pty.GetPrimaryFileDescriptor(), ), 0);
+  ASSERT_EQ(m_term.SetCanonical(false), true);
+  ASSERT_EQ(tcgetattr(m_fd, ), 0);
   EXPECT_EQ(terminfo.c_lflag & ICANON, 0U);
 }
 
 TEST_F(TerminalTest, SaveRestoreRAII) {
   struct termios orig_terminfo;
   struct termios terminfo;
-  ASSERT_EQ(tcgetattr(m_pty.GetPrimaryFileDescriptor(), _terminfo), 0);
-
-  Terminal term{m_pty.GetPrimaryFileDescriptor()};
+  ASSERT_EQ(tcgetattr(m_fd, _terminfo), 0);
 
   {
-TerminalState term_state{term};
+TerminalState term_state{m_term};
 terminfo = orig_terminfo;
 
 // make an arbitrary change
@@ -85,11 +87,11 @@
 cfsetospeed(,
 cfgetospeed(_terminfo) == B9600 ? B4800 : B9600);
 
-ASSERT_EQ(tcsetattr(m_pty.GetPrimaryFileDescriptor(), TCSANOW, ),
+ASSERT_EQ(tcsetattr(m_fd, TCSANOW, ),
   0);
   }
 
-  ASSERT_EQ(tcgetattr(m_pty.GetPrimaryFileDescriptor(), ), 0);
+  ASSERT_EQ(tcgetattr(m_fd, ), 0);
   ASSERT_EQ(memcmp(, _terminfo, sizeof(terminfo)), 0);
 }
 
@@ -98,19 +100,18 @@
 
   struct termios orig_terminfo;
   struct termios terminfo;
-  ASSERT_EQ(tcgetattr(m_pty.GetPrimaryFileDescriptor(), _terminfo), 0);
+  ASSERT_EQ(tcgetattr(m_fd, _terminfo), 0);
 
-  Terminal term{m_pty.GetPrimaryFileDescriptor()};
-  term_state.Save(term, false);
+  term_state.Save(m_term, false);
   terminfo = orig_terminfo;
 
   // make an arbitrary change
   cfsetispeed(, cfgetispeed(_terminfo) == B9600 ? B4800 : B9600);
   cfsetospeed(, cfgetospeed(_terminfo) == B9600 ? B4800 : B9600);
 
-  ASSERT_EQ(tcsetattr(m_pty.GetPrimaryFileDescriptor(), TCSANOW, ), 0);
+  ASSERT_EQ(tcsetattr(m_fd, TCSANOW, ), 0);
 
   term_state.Restore();
-  ASSERT_EQ(tcgetattr(m_pty.GetPrimaryFileDescriptor(), ), 0);
+  ASSERT_EQ(tcgetattr(m_fd, ), 0);
   ASSERT_EQ(memcmp(, _terminfo, sizeof(terminfo)), 0);
 }
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D111402: [lldb] [test] Use secondary pty end for testing Terminal

2021-10-08 Thread Raphael Isemann via Phabricator via lldb-commits
teemperor accepted this revision.
teemperor added a comment.
This revision is now accepted and ready to land.

If Green Dragon was still with us this would make it happy (and green), so LGTM.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D111402/new/

https://reviews.llvm.org/D111402

___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D111402: [lldb] [test] Use secondary pty end for testing Terminal

2021-10-08 Thread Michał Górny via Phabricator via lldb-commits
mgorny created this revision.
mgorny added reviewers: teemperor, labath, krytarowski, emaste.
mgorny requested review of this revision.

Open and use the secondary end of a pty for testing Terminal properties
in order to fix the tests on Darwin.  While at it, streamline getting
the fd and Terminal class.


https://reviews.llvm.org/D111402

Files:
  lldb/unittests/Host/posix/TerminalTest.cpp

Index: lldb/unittests/Host/posix/TerminalTest.cpp
===
--- lldb/unittests/Host/posix/TerminalTest.cpp
+++ lldb/unittests/Host/posix/TerminalTest.cpp
@@ -21,16 +21,22 @@
 class TerminalTest : public ::testing::Test {
 protected:
   PseudoTerminal m_pty;
+  int m_fd;
+  Terminal m_term;
 
   void SetUp() override {
-EXPECT_THAT_ERROR(m_pty.OpenFirstAvailablePrimary(O_RDWR | O_NOCTTY),
+ASSERT_THAT_ERROR(m_pty.OpenFirstAvailablePrimary(O_RDWR | O_NOCTTY),
   llvm::Succeeded());
+ASSERT_THAT_ERROR(m_pty.OpenSecondary(O_RDWR | O_NOCTTY),
+  llvm::Succeeded());
+m_fd = m_pty.GetSecondaryFileDescriptor();
+ASSERT_NE(m_fd, -1);
+m_term.SetFileDescriptor(m_fd);
   }
 };
 
 TEST_F(TerminalTest, PtyIsATerminal) {
-  Terminal term{m_pty.GetPrimaryFileDescriptor()};
-  EXPECT_EQ(term.IsATerminal(), true);
+  EXPECT_EQ(m_term.IsATerminal(), true);
 }
 
 TEST_F(TerminalTest, PipeIsNotATerminal) {
@@ -44,39 +50,35 @@
 
 TEST_F(TerminalTest, SetEcho) {
   struct termios terminfo;
-  Terminal term{m_pty.GetPrimaryFileDescriptor()};
 
-  ASSERT_EQ(term.SetEcho(true), true);
-  ASSERT_EQ(tcgetattr(m_pty.GetPrimaryFileDescriptor(), ), 0);
+  ASSERT_EQ(m_term.SetEcho(true), true);
+  ASSERT_EQ(tcgetattr(m_fd, ), 0);
   EXPECT_NE(terminfo.c_lflag & ECHO, 0U);
 
-  ASSERT_EQ(term.SetEcho(false), true);
-  ASSERT_EQ(tcgetattr(m_pty.GetPrimaryFileDescriptor(), ), 0);
+  ASSERT_EQ(m_term.SetEcho(false), true);
+  ASSERT_EQ(tcgetattr(m_fd, ), 0);
   EXPECT_EQ(terminfo.c_lflag & ECHO, 0U);
 }
 
 TEST_F(TerminalTest, SetCanonical) {
   struct termios terminfo;
-  Terminal term{m_pty.GetPrimaryFileDescriptor()};
 
-  ASSERT_EQ(term.SetCanonical(true), true);
-  ASSERT_EQ(tcgetattr(m_pty.GetPrimaryFileDescriptor(), ), 0);
+  ASSERT_EQ(m_term.SetCanonical(true), true);
+  ASSERT_EQ(tcgetattr(m_fd, ), 0);
   EXPECT_NE(terminfo.c_lflag & ICANON, 0U);
 
-  ASSERT_EQ(term.SetCanonical(false), true);
-  ASSERT_EQ(tcgetattr(m_pty.GetPrimaryFileDescriptor(), ), 0);
+  ASSERT_EQ(m_term.SetCanonical(false), true);
+  ASSERT_EQ(tcgetattr(m_fd, ), 0);
   EXPECT_EQ(terminfo.c_lflag & ICANON, 0U);
 }
 
 TEST_F(TerminalTest, SaveRestoreRAII) {
   struct termios orig_terminfo;
   struct termios terminfo;
-  ASSERT_EQ(tcgetattr(m_pty.GetPrimaryFileDescriptor(), _terminfo), 0);
-
-  Terminal term{m_pty.GetPrimaryFileDescriptor()};
+  ASSERT_EQ(tcgetattr(m_fd, _terminfo), 0);
 
   {
-TerminalState term_state{term};
+TerminalState term_state{m_term};
 terminfo = orig_terminfo;
 
 // make an arbitrary change
@@ -85,11 +87,11 @@
 cfsetospeed(,
 cfgetospeed(_terminfo) == B9600 ? B4800 : B9600);
 
-ASSERT_EQ(tcsetattr(m_pty.GetPrimaryFileDescriptor(), TCSANOW, ),
+ASSERT_EQ(tcsetattr(m_fd, TCSANOW, ),
   0);
   }
 
-  ASSERT_EQ(tcgetattr(m_pty.GetPrimaryFileDescriptor(), ), 0);
+  ASSERT_EQ(tcgetattr(m_fd, ), 0);
   ASSERT_EQ(memcmp(, _terminfo, sizeof(terminfo)), 0);
 }
 
@@ -98,19 +100,18 @@
 
   struct termios orig_terminfo;
   struct termios terminfo;
-  ASSERT_EQ(tcgetattr(m_pty.GetPrimaryFileDescriptor(), _terminfo), 0);
+  ASSERT_EQ(tcgetattr(m_fd, _terminfo), 0);
 
-  Terminal term{m_pty.GetPrimaryFileDescriptor()};
-  term_state.Save(term, false);
+  term_state.Save(m_term, false);
   terminfo = orig_terminfo;
 
   // make an arbitrary change
   cfsetispeed(, cfgetispeed(_terminfo) == B9600 ? B4800 : B9600);
   cfsetospeed(, cfgetospeed(_terminfo) == B9600 ? B4800 : B9600);
 
-  ASSERT_EQ(tcsetattr(m_pty.GetPrimaryFileDescriptor(), TCSANOW, ), 0);
+  ASSERT_EQ(tcsetattr(m_fd, TCSANOW, ), 0);
 
   term_state.Restore();
-  ASSERT_EQ(tcgetattr(m_pty.GetPrimaryFileDescriptor(), ), 0);
+  ASSERT_EQ(tcgetattr(m_fd, ), 0);
   ASSERT_EQ(memcmp(, _terminfo, sizeof(terminfo)), 0);
 }
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits