1""" 2Test denied process attach. 3""" 4 5 6 7import time 8import lldb 9from lldbsuite.test.decorators import * 10from lldbsuite.test.lldbtest import * 11from lldbsuite.test import lldbutil 12 13exe_name = 'AttachDenied' # Must match Makefile 14 15 16class AttachDeniedTestCase(TestBase): 17 18 mydir = TestBase.compute_mydir(__file__) 19 NO_DEBUG_INFO_TESTCASE = True 20 21 @skipIfWindows 22 @skipIfiOSSimulator 23 @skipIfDarwinEmbedded # ptrace(ATTACH_REQUEST...) won't work on ios/tvos/etc 24 def test_attach_to_process_by_id_denied(self): 25 """Test attach by process id denied""" 26 self.build() 27 exe = self.getBuildArtifact(exe_name) 28 29 # Use a file as a synchronization point between test and inferior. 30 pid_file_path = lldbutil.append_to_process_working_directory(self, 31 "pid_file_%d" % (int(time.time()))) 32 self.addTearDownHook( 33 lambda: self.run_platform_command( 34 "rm %s" % 35 (pid_file_path))) 36 37 # Spawn a new process 38 popen = self.spawnSubprocess(exe, [pid_file_path]) 39 40 pid = lldbutil.wait_for_file_on_target(self, pid_file_path) 41 42 self.expect('process attach -p ' + pid, 43 startstr='error: attach failed:', 44 error=True) 45