Index: lldb/trunk/packages/Python/lldbsuite/test/functionalities/process_attach/TestProcessAttach.py =================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/process_attach/TestProcessAttach.py +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/process_attach/TestProcessAttach.py @@ -8,6 +8,7 @@ import os import time import lldb +import shutil from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil @@ -38,6 +39,29 @@ process = target.GetProcess() self.assertTrue(process, PROCESS_IS_VALID) + def test_attach_to_process_from_different_dir_by_id(self): + """Test attach by process id""" + try: + os.mkdir(os.path.join(os.getcwd(),'newdir')) + except OSError, e: + if e.errno != os.errno.EEXIST: + raise + self.buildProgram('main.cpp',os.path.join(os.getcwd(),'newdir','proc_attach')) + exe = os.path.join('.','newdir','proc_attach') + self.addTearDownHook(lambda: shutil.rmtree(os.path.join(os.getcwd()))) + + # Spawn a new process + popen = self.spawnSubprocess(exe) + self.addTearDownHook(self.cleanupSubprocesses) + + os.chdir('newdir') + self.runCmd("process attach -p " + str(popen.pid)) + + target = self.dbg.GetSelectedTarget() + + process = target.GetProcess() + self.assertTrue(process, PROCESS_IS_VALID) + def test_attach_to_process_by_name(self): """Test attach by process name""" self.build()