diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2020-04-29 15:30:01 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-29 15:30:01 (GMT) |
commit | d9e904919197a22b95946f11ba5f24b796088c06 (patch) | |
tree | 50b03dc83938febc9e0ed0b1471b92dd6c424227 /Lib/test | |
parent | cc011b5190b63f0be561ddec38fc4cd9e60cbf6a (diff) | |
download | cpython-d9e904919197a22b95946f11ba5f24b796088c06.zip cpython-d9e904919197a22b95946f11ba5f24b796088c06.tar.gz cpython-d9e904919197a22b95946f11ba5f24b796088c06.tar.bz2 |
bpo-40436: Fix code parsing gdb version (GH-19792)
test_gdb and test.pythoninfo now check gdb command exit code.
(cherry picked from commit ec9bea4a3766bd815148a27f61eb24e7dd459ac7)
Co-authored-by: Victor Stinner <vstinner@python.org>
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/pythoninfo.py | 3 | ||||
-rw-r--r-- | Lib/test/test_gdb.py | 10 |
2 files changed, 11 insertions, 2 deletions
diff --git a/Lib/test/pythoninfo.py b/Lib/test/pythoninfo.py index 797b3af..9f3e79f 100644 --- a/Lib/test/pythoninfo.py +++ b/Lib/test/pythoninfo.py @@ -371,6 +371,9 @@ def collect_gdb(info_add): stderr=subprocess.PIPE, universal_newlines=True) version = proc.communicate()[0] + if proc.returncode: + # ignore gdb failure: test_gdb will log the error + return except OSError: return diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py index bd9a5cb..f043c92 100644 --- a/Lib/test/test_gdb.py +++ b/Lib/test/test_gdb.py @@ -17,12 +17,18 @@ from test.support import run_unittest, findfile, python_is_optimized def get_gdb_version(): try: - proc = subprocess.Popen(["gdb", "-nx", "--version"], + cmd = ["gdb", "-nx", "--version"] + proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) with proc: - version = proc.communicate()[0] + version, stderr = proc.communicate() + + if proc.returncode: + raise Exception(f"Command {' '.join(cmd)!r} failed " + f"with exit code {proc.returncode}: " + f"stdout={version!r} stderr={stderr!r}") except OSError: # This is what "no gdb" looks like. There may, however, be other # errors that manifest this way too. |