Files
clang-p2996/lldb/test/API/functionalities/deleted-executable/TestDeletedExecutable.py
Jonas Devlieghere 2238dcc393 [NFC][Py Reformat] Reformat python files in lldb
This is an ongoing series of commits that are reformatting our Python
code. Reformatting is done with `black` (23.1.0).

If you end up having problems merging this commit because you have made
changes to a python file, the best way to handle that is to run `git
checkout --ours <yourfile>` and then reformat it with black.

RFC: https://discourse.llvm.org/t/rfc-document-and-standardize-python-code-style

Differential revision: https://reviews.llvm.org/D151460
2023-05-25 12:54:09 -07:00

40 lines
1.1 KiB
Python

"""
Test process attach when executable was deleted.
"""
import os
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
class TestDeletedExecutable(TestBase):
NO_DEBUG_INFO_TESTCASE = True
@skipIfWindows # cannot delete a running executable
def test(self):
self.build()
exe = self.getBuildArtifact("a.out")
# Use a file as a synchronization point between test and inferior.
pid_file_path = lldbutil.append_to_process_working_directory(
self, "token_pid_%d" % (int(os.getpid()))
)
self.addTearDownHook(
lambda: self.run_platform_command("rm %s" % (pid_file_path))
)
# Spawn a new process
popen = self.spawnSubprocess(exe, [pid_file_path])
# Wait until process has fully started up.
pid = lldbutil.wait_for_file_on_target(self, pid_file_path)
# Now we can safely remove the executable and test if we can attach.
os.remove(exe)
self.runCmd("process attach -p " + str(popen.pid))
self.runCmd("kill")