apolyakov updated this revision to Diff 166936.
apolyakov added a comment.
Changed python version required to use 'pass_fds' argument to 3.2.
I tested this patch with python 2.7 and 3.5.
https://reviews.llvm.org/D52498
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
@@ -1,5 +1,3 @@
-#!/usr/bin/env python2
-
import os
import sys
import subprocess
@@ -9,22 +7,26 @@
hostname = 'localhost'
(r, w) = os.pipe()
+kwargs = {}
+if sys.version_info >= (3,2):
+ kwargs['pass_fds'] = [w]
+
args = sys.argv
# Get debugserver, lldb-mi and FileCheck executables' paths with arguments.
debugserver = ' '.join([args[1], '--pipe', str(w), hostname + ':0'])
lldbmi = args[2]
test_file = args[3]
filecheck = 'FileCheck ' + test_file
# Run debugserver, lldb-mi and FileCheck.
-debugserver_proc = subprocess.Popen(debugserver.split())
+debugserver_proc = subprocess.Popen(debugserver.split(), **kwargs)
lldbmi_proc = subprocess.Popen(lldbmi, stdin=subprocess.PIPE,
stdout=subprocess.PIPE, shell=True)
filecheck_proc = subprocess.Popen(filecheck, stdin=subprocess.PIPE,
shell=True)
timeout_sec = 30
-timer = Timer(timeout_sec, lldbmi_proc.kill)
+timer = Timer(timeout_sec, exit, [filecheck_proc.returncode])
try:
timer.start()
@@ -37,9 +39,10 @@
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.stdin.write(f.read().replace('$PORT',
port).encode('utf-8'))
out, err = lldbmi_proc.communicate()
filecheck_proc.stdin.write(out)
+ filecheck_proc.communicate()
finally:
timer.cancel()
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
@@ -1,5 +1,3 @@
-#!/usr/bin/env python2
-
import os
import sys
import subprocess
@@ -9,22 +7,26 @@
hostname = 'localhost'
(r, w) = os.pipe()
+kwargs = {}
+if sys.version_info >= (3,2):
+ kwargs['pass_fds'] = [w]
+
args = sys.argv
# Get debugserver, lldb-mi and FileCheck executables' paths with arguments.
debugserver = ' '.join([args[1], '--pipe', str(w), hostname + ':0'])
lldbmi = args[2]
test_file = args[3]
filecheck = 'FileCheck ' + test_file
# Run debugserver, lldb-mi and FileCheck.
-debugserver_proc = subprocess.Popen(debugserver.split())
+debugserver_proc = subprocess.Popen(debugserver.split(), **kwargs)
lldbmi_proc = subprocess.Popen(lldbmi, stdin=subprocess.PIPE,
stdout=subprocess.PIPE, shell=True)
filecheck_proc = subprocess.Popen(filecheck, stdin=subprocess.PIPE,
shell=True)
timeout_sec = 30
-timer = Timer(timeout_sec, lldbmi_proc.kill)
+timer = Timer(timeout_sec, exit, [filecheck_proc.returncode])
try:
timer.start()
@@ -37,9 +39,10 @@
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.stdin.write(f.read().replace('$PORT', port).encode('utf-8'))
out, err = lldbmi_proc.communicate()
filecheck_proc.stdin.write(out)
+ filecheck_proc.communicate()
finally:
timer.cancel()
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits