[Lldb-commits] [PATCH] D112212: [lldb/test] Print build commands in trace mode
Pavel Labath via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Thu Oct 21 05:24:22 PDT 2021
labath added inline comments.
================
Comment at: lldb/packages/Python/lldbsuite/test/lldbtest.py:1284
compiler = self.getCompilerBinary()
- version_output = system([[compiler, "--version"]])
- for line in version_output.split(os.linesep):
- m = re.search('version ([0-9.]+)', line)
- if m:
- return m.group(1)
+ version_output = check_output([compiler, "--version"])
+ m = re.search(b'version ([0-9.]+)', version_output)
----------------
DavidSpickett wrote:
> You could use `universal_newlines` here to get the decoded string. It's a bit cryptic but saves the decode below.
>
> There is an alias `text` name in 3.7 but requiring that seems ambitious.
how about `error="replace"` on the `check_output` invocation it's equally cryptic, and does not throw an exception on non-utf output?
(I'm generally unsure about the best way to handle the byte-string duality in python3 -- whether to try to handle things at the byte level (if they can) or to convert everything to strings as soon as possible and pretend bytes don't exist.)
================
Comment at: lldb/packages/Python/lldbsuite/test/lldbtest.py:1425
+ try:
+ proc = run(cmd, stdin=DEVNULL, stdout=PIPE, stderr=STDOUT,
+ check=True)
----------------
DavidSpickett wrote:
> labath wrote:
> > PSA: this function is available from python-3.5 onwards.
> Any reason to use `run(...check=True)` rather than `check_call`?
>
> https://docs.python.org/3/library/subprocess.html#subprocess.check_call
>
> (`universal_newlines` applies here too if you want)
I must have thought I needed some of this functionality, but now that I look at it -- I don't. So `check_output` it is.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D112212/new/
https://reviews.llvm.org/D112212
More information about the lldb-commits
mailing list