summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2020-08-03 14:33:06 +0000
committerpatrick <patrick@openbsd.org>2020-08-03 14:33:06 +0000
commit061da546b983eb767bad15e67af1174fb0bcf31c (patch)
tree83c78b820819d70aa40c36d90447978b300078c5 /gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable
parentImport LLVM 10.0.0 release including clang, lld and lldb. (diff)
downloadwireguard-openbsd-061da546b983eb767bad15e67af1174fb0bcf31c.tar.xz
wireguard-openbsd-061da546b983eb767bad15e67af1174fb0bcf31c.zip
Import LLVM 10.0.0 release including clang, lld and lldb.
ok hackroom tested by plenty
Diffstat (limited to 'gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable')
-rw-r--r--gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/Makefile3
-rw-r--r--gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/TestDeletedExecutable.py46
-rw-r--r--gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/main.cpp15
3 files changed, 64 insertions, 0 deletions
diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/Makefile b/gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/Makefile
new file mode 100644
index 00000000000..99998b20bcb
--- /dev/null
+++ b/gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/Makefile
@@ -0,0 +1,3 @@
+CXX_SOURCES := main.cpp
+
+include Makefile.rules
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")
diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/main.cpp b/gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/main.cpp
new file mode 100644
index 00000000000..af00ac263cc
--- /dev/null
+++ b/gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/main.cpp
@@ -0,0 +1,15 @@
+#include <chrono>
+#include <fstream>
+#include <thread>
+
+int main(int argc, char const *argv[]) {
+ lldb_enable_attach();
+
+ {
+ // Create file to signal that this process has started up.
+ std::ofstream f;
+ f.open(argv[1]);
+ }
+
+ std::this_thread::sleep_for(std::chrono::seconds(60));
+}