teemperor updated this revision to Diff 209231.
teemperor edited the summary of this revision.
teemperor added a comment.
- Timeout -> file synchronization.
- Made the test process run longer just in case.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D64546/new/
https://reviews.llvm.org/D64546
Files:
lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/TestDeletedExecutable.py
lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/main.cpp
Index:
lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/main.cpp
===================================================================
---
lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/main.cpp
+++
lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/main.cpp
@@ -1,9 +1,15 @@
#include <chrono>
+#include <fstream>
#include <thread>
-int main(int argc, char const *argv[])
-{
+int main(int argc, char const *argv[]) {
lldb_enable_attach();
- std::this_thread::sleep_for(std::chrono::seconds(30));
+ {
+ // 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));
}
Index:
lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/TestDeletedExecutable.py
===================================================================
---
lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/TestDeletedExecutable.py
+++
lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/TestDeletedExecutable.py
@@ -1,5 +1,5 @@
"""
-Test process attach/resume.
+Test process attach when executable was deleted.
"""
from __future__ import print_function
@@ -24,8 +24,22 @@
self.build()
exe = self.getBuildArtifact("a.out")
- popen = self.spawnSubprocess(exe)
+ # 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))
Index: lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/main.cpp
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/main.cpp
+++ lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/main.cpp
@@ -1,9 +1,15 @@
#include <chrono>
+#include <fstream>
#include <thread>
-int main(int argc, char const *argv[])
-{
+int main(int argc, char const *argv[]) {
lldb_enable_attach();
- std::this_thread::sleep_for(std::chrono::seconds(30));
+ {
+ // 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));
}
Index: lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/TestDeletedExecutable.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/TestDeletedExecutable.py
+++ lldb/packages/Python/lldbsuite/test/functionalities/deleted-executable/TestDeletedExecutable.py
@@ -1,5 +1,5 @@
"""
-Test process attach/resume.
+Test process attach when executable was deleted.
"""
from __future__ import print_function
@@ -24,8 +24,22 @@
self.build()
exe = self.getBuildArtifact("a.out")
- popen = self.spawnSubprocess(exe)
+ # 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))
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits