[Lldb-commits] [lldb] r225748 - Don't run functionalities/tty under sudo / as root.

Jason Molenda jmolenda at apple.com
Mon Jan 12 16:54:59 PST 2015

Author: jmolenda
Date: Mon Jan 12 18:54:59 2015
New Revision: 225748

URL: http://llvm.org/viewvc/llvm-project?rev=225748&view=rev
Don't run functionalities/tty under sudo / as root.
The terminal window will be opened under the ownership
of the real userid and it won't be able to open the
socket talking back to lldb -- the testsuite will hang

The same thing probably should be done for lldb when run
on a remote system over ssh.  I added a line for that 
but commented it out for now because I haven't
tested it.


Modified: lldb/trunk/test/functionalities/tty/TestTerminal.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/tty/TestTerminal.py?rev=225748&r1=225747&r2=225748&view=diff
--- lldb/trunk/test/functionalities/tty/TestTerminal.py (original)
+++ lldb/trunk/test/functionalities/tty/TestTerminal.py Mon Jan 12 18:54:59 2015
@@ -16,6 +16,16 @@ class LaunchInTerminalTestCase(TestBase)
     # a program in a separate terminal window. It would be great if other platforms
     # added support for this.
     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
+    # If the test is being run under sudo, the spawned terminal won't retain that elevated
+    # privilege so it can't open the socket to talk back to the test case
+    @unittest2.skipUnless(os.geteuid() != 0, "test cannot be run as root")
+    # Do we need to disable this test if the testsuite is being run on a rmeote system?
+    # This env var is only defined when the shell is running in a local mac terminal window
+    # @unittest2.skipUnless(os.environ.has_key('TERM_PROGRAM'), "test must be run on local system")
     def test_launch_in_terminal (self):
         exe = "/bin/ls"
         target = self.dbg.CreateTarget(exe)

More information about the lldb-commits mailing list