mirror of https://github.com/python/cpython
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.
This commit is contained in:
parent
d64ee1a5ba
commit
7279b5125e
|
@ -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)
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
Fix ``test_gdb.test_strings()`` when ``LC_ALL=C`` and GDB was compiled with
|
||||
Python 3.6 or earlier.
|
Loading…
Reference in New Issue