[Lldb-commits] [lldb] r252025 - Python 3 - Use universal_newlines when calling subprocess.check_output
Zachary Turner via lldb-commits
lldb-commits at lists.llvm.org
Tue Nov 3 17:03:47 PST 2015
Author: zturner
Date: Tue Nov 3 19:03:47 2015
New Revision: 252025
URL: http://llvm.org/viewvc/llvm-project?rev=252025&view=rev
Log:
Python 3 - Use universal_newlines when calling subprocess.check_output
By default in Python 3, check_output() returns a program's output as
an encoded byte sequence. This means it returns a Py3 `bytes` object,
which cannot be compared to a string since it's a different fundamental
type.
Although it might not be correct from a purist standpoint, from a
practical one we can assume that all output is encoded in the default
locale, in which case using universal_newlines=True will decode it
according to the current locale. Anyway, universal_newlines also
has the nice behavior that it converts \r\n to \n on Windows platforms
so this makes parsing code easier, should we need that. So it seems
like a win/win.
Modified:
lldb/trunk/packages/Python/lldbsuite/support/seven.py
lldb/trunk/packages/Python/lldbsuite/test/dotest.py
Modified: lldb/trunk/packages/Python/lldbsuite/support/seven.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/support/seven.py?rev=252025&r1=252024&r2=252025&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/support/seven.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/support/seven.py Tue Nov 3 19:03:47 2015
@@ -10,7 +10,7 @@ else:
def get_command_status_output(command):
try:
import subprocess
- return (0, subprocess.check_output(command, shell=True))
+ return (0, subprocess.check_output(command, shell=True, universal_newlines=True))
except subprocess.CalledProcessError as e:
return (e.returncode, e.output)
Modified: lldb/trunk/packages/Python/lldbsuite/test/dotest.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/dotest.py?rev=252025&r1=252024&r2=252025&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/dotest.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/dotest.py Tue Nov 3 19:03:47 2015
@@ -1147,7 +1147,7 @@ def setupSysPath():
# If our lldb supports the -P option, use it to find the python path:
init_in_python_dir = os.path.join('lldb', '__init__.py')
- lldb_dash_p_result = subprocess.check_output([lldbtest_config.lldbExec, "-P"], stderr=subprocess.STDOUT)
+ lldb_dash_p_result = subprocess.check_output([lldbtest_config.lldbExec, "-P"], stderr=subprocess.STDOUT, universal_newlines=True)
if lldb_dash_p_result and not lldb_dash_p_result.startswith(("<", "lldb: invalid option:")) \
and not lldb_dash_p_result.startswith("Traceback"):
More information about the lldb-commits
mailing list