From 061da546b983eb767bad15e67af1174fb0bcf31c Mon Sep 17 00:00:00 2001 From: patrick Date: Mon, 3 Aug 2020 14:33:06 +0000 Subject: Import LLVM 10.0.0 release including clang, lld and lldb. ok hackroom tested by plenty --- .../deleted-executable/TestDeletedExecutable.py | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/TestDeletedExecutable.py (limited to 'gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/TestDeletedExecutable.py') diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/TestDeletedExecutable.py b/gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/TestDeletedExecutable.py new file mode 100644 index 00000000000..ed17d9b36b6 --- /dev/null +++ b/gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/TestDeletedExecutable.py @@ -0,0 +1,46 @@ +""" +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): + + mydir = TestBase.compute_mydir(__file__) + NO_DEBUG_INFO_TESTCASE = True + + @skipIfWindows # cannot delete a running executable + @expectedFailureAll(oslist=["linux"], + triple=no_match('aarch64-.*-android')) + # determining the architecture of the process fails + @expectedFailureNetBSD + 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]) + self.addTearDownHook(self.cleanupSubprocesses) + + # 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") -- cgit v1.2.3-59-g8ed1b