vbalu created this revision.

Adding test case to test the scenario in https://reviews.llvm.org/D3


Repository:
  rL LLVM

https://reviews.llvm.org/D32522

Files:
  
packages/Python/lldbsuite/test/functionalities/process_attach/TestProcessAttach.py
  packages/Python/lldbsuite/test/lldbtest.py


Index: packages/Python/lldbsuite/test/lldbtest.py
===================================================================
--- packages/Python/lldbsuite/test/lldbtest.py
+++ packages/Python/lldbsuite/test/lldbtest.py
@@ -1484,6 +1484,9 @@
         """ Platform specific way to build an executable from C/C++ sources. 
"""
         d = {'CXX_SOURCES': sources,
              'EXE': exe_name}
+        if not os.path.exists(os.path.dirname(exe_name)):
+            if os.path.dirname(exe_name):
+                os.mkdir(os.path.dirname(exe_name))
         self.buildDefault(dictionary=d)
 
     def buildDefault(
Index: 
packages/Python/lldbsuite/test/functionalities/process_attach/TestProcessAttach.py
===================================================================
--- 
packages/Python/lldbsuite/test/functionalities/process_attach/TestProcessAttach.py
+++ 
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,23 @@
         process = target.GetProcess()
         self.assertTrue(process, PROCESS_IS_VALID)
 
+       def test_attach_to_process_frm_different_dir_by_id(self):
+               """Test attach by process id"""
+        self.buildProgram('main.cpp','newdir/proc_attach')
+        exe = os.path.join(os.getcwd(), 'newdir/proc_attach')
+        self.addTearDownHook(lambda: shutil.rmtree(os.path.dirname(exe)))
+
+        # Spawn a new process
+        popen = self.spawnSubprocess(exe)
+        self.addTearDownHook(self.cleanupSubprocesses)
+
+        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()


Index: packages/Python/lldbsuite/test/lldbtest.py
===================================================================
--- packages/Python/lldbsuite/test/lldbtest.py
+++ packages/Python/lldbsuite/test/lldbtest.py
@@ -1484,6 +1484,9 @@
         """ Platform specific way to build an executable from C/C++ sources. """
         d = {'CXX_SOURCES': sources,
              'EXE': exe_name}
+        if not os.path.exists(os.path.dirname(exe_name)):
+            if os.path.dirname(exe_name):
+                os.mkdir(os.path.dirname(exe_name))
         self.buildDefault(dictionary=d)
 
     def buildDefault(
Index: packages/Python/lldbsuite/test/functionalities/process_attach/TestProcessAttach.py
===================================================================
--- packages/Python/lldbsuite/test/functionalities/process_attach/TestProcessAttach.py
+++ 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,23 @@
         process = target.GetProcess()
         self.assertTrue(process, PROCESS_IS_VALID)
 
+	def test_attach_to_process_frm_different_dir_by_id(self):
+		"""Test attach by process id"""
+        self.buildProgram('main.cpp','newdir/proc_attach')
+        exe = os.path.join(os.getcwd(), 'newdir/proc_attach')
+        self.addTearDownHook(lambda: shutil.rmtree(os.path.dirname(exe)))
+
+        # Spawn a new process
+        popen = self.spawnSubprocess(exe)
+        self.addTearDownHook(self.cleanupSubprocesses)
+
+        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()
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to