Kaydet (Commit) 7279b512 authored tarafından Elvis Pranskevichus's avatar Elvis Pranskevichus Kaydeden (comit) Victor Stinner

bpo-34537: Fix test_gdb:test_strings with LC_ALL=C (GH-9483)

We cannot simply call locale.getpreferredencoding() here,
as GDB might have been linked against a different version
of Python with a different encoding and coercion policy
with respect to PEP 538 and PEP 540.

Thanks to Victor Stinner for a hint on how to fix this.
üst d64ee1a5
......@@ -321,7 +321,20 @@ class PrettyPrintTests(DebuggerTests):
def test_strings(self):
'Verify the pretty-printing of unicode strings'
encoding = locale.getpreferredencoding()
# We cannot simply call locale.getpreferredencoding() here,
# as GDB might have been linked against a different version
# of Python with a different encoding and coercion policy
# with respect to PEP 538 and PEP 540.
out, err = run_gdb(
'--eval-command',
'python import locale; print(locale.getpreferredencoding())')
encoding = out.rstrip()
if err or not encoding:
raise RuntimeError(
f'unable to determine the preferred encoding '
f'of embedded Python in GDB: {err}')
def check_repr(text):
try:
text.encode(encoding)
......
Fix ``test_gdb.test_strings()`` when ``LC_ALL=C`` and GDB was compiled with
Python 3.6 or earlier.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment