apolyakov updated this revision to Diff 166337.
apolyakov edited the summary of this revision.
apolyakov added a comment.
Thanks to @tatyana-krasnukha for the idea about a timer. Added a timer to
target-select-so-path test.
https://reviews.llvm.org/D52139
Files:
lit/tools/lldb-mi/target/inputs/target-select-so-path.py
Index: lit/tools/lldb-mi/target/inputs/target-select-so-path.py
===================================================================
--- lit/tools/lldb-mi/target/inputs/target-select-so-path.py
+++ lit/tools/lldb-mi/target/inputs/target-select-so-path.py
@@ -3,6 +3,7 @@
import os
import sys
import subprocess
+from threading import Timer
hostname = 'localhost'
@@ -19,21 +20,28 @@
debugserver_proc = subprocess.Popen(debugserver.split())
lldbmi_proc = subprocess.Popen(lldbmi, stdin=subprocess.PIPE,
stdout=subprocess.PIPE, shell=True)
-filecheck_proc = subprocess.Popen(filecheck, stdin=lldbmi_proc.stdout,
+filecheck_proc = subprocess.Popen(filecheck, stdin=subprocess.PIPE,
shell=True)
-# Get a tcp port chosen by debugserver.
-# The number quite big to get lldb-server's output and to not hang.
-bytes_to_read = 10
-port_bytes = os.read(r, bytes_to_read)
-port = str(port_bytes.decode('utf-8').strip('\x00'))
-
-with open(test_file, 'r') as f:
- # Replace '$PORT' with a free port number and pass
- # test's content to lldb-mi.
- lldbmi_proc.stdin.write(f.read().replace('$PORT', port))
- lldbmi_proc.wait()
- filecheck_proc.wait()
+timeout_sec = 120
+timer = Timer(timeout_sec, lldbmi_proc.kill)
+try:
+ timer.start()
+
+ # Get a tcp port chosen by debugserver.
+ # The number quite big to get lldb-server's output and to not hang.
+ bytes_to_read = 10
+ port_bytes = os.read(r, bytes_to_read)
+ port = str(port_bytes.decode('utf-8').strip('\x00'))
+
+ with open(test_file, 'r') as f:
+ # Replace '$PORT' with a free port number and pass
+ # test's content to lldb-mi.
+ lldbmi_proc.stdin.write(f.read().replace('$PORT', port))
+ out, err = lldbmi_proc.communicate()
+ filecheck_proc.stdin.write(out)
+finally:
+ timer.cancel()
debugserver_proc.kill()
exit(filecheck_proc.returncode)
Index: lit/tools/lldb-mi/target/inputs/target-select-so-path.py
===================================================================
--- lit/tools/lldb-mi/target/inputs/target-select-so-path.py
+++ lit/tools/lldb-mi/target/inputs/target-select-so-path.py
@@ -3,6 +3,7 @@
import os
import sys
import subprocess
+from threading import Timer
hostname = 'localhost'
@@ -19,21 +20,28 @@
debugserver_proc = subprocess.Popen(debugserver.split())
lldbmi_proc = subprocess.Popen(lldbmi, stdin=subprocess.PIPE,
stdout=subprocess.PIPE, shell=True)
-filecheck_proc = subprocess.Popen(filecheck, stdin=lldbmi_proc.stdout,
+filecheck_proc = subprocess.Popen(filecheck, stdin=subprocess.PIPE,
shell=True)
-# Get a tcp port chosen by debugserver.
-# The number quite big to get lldb-server's output and to not hang.
-bytes_to_read = 10
-port_bytes = os.read(r, bytes_to_read)
-port = str(port_bytes.decode('utf-8').strip('\x00'))
-
-with open(test_file, 'r') as f:
- # Replace '$PORT' with a free port number and pass
- # test's content to lldb-mi.
- lldbmi_proc.stdin.write(f.read().replace('$PORT', port))
- lldbmi_proc.wait()
- filecheck_proc.wait()
+timeout_sec = 120
+timer = Timer(timeout_sec, lldbmi_proc.kill)
+try:
+ timer.start()
+
+ # Get a tcp port chosen by debugserver.
+ # The number quite big to get lldb-server's output and to not hang.
+ bytes_to_read = 10
+ port_bytes = os.read(r, bytes_to_read)
+ port = str(port_bytes.decode('utf-8').strip('\x00'))
+
+ with open(test_file, 'r') as f:
+ # Replace '$PORT' with a free port number and pass
+ # test's content to lldb-mi.
+ lldbmi_proc.stdin.write(f.read().replace('$PORT', port))
+ out, err = lldbmi_proc.communicate()
+ filecheck_proc.stdin.write(out)
+finally:
+ timer.cancel()
debugserver_proc.kill()
exit(filecheck_proc.returncode)
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits