Commit 7220f083 authored by Victor Stinner's avatar Victor Stinner

Fix test_codecs for Windows: check size of wchar_t, not sys.maxunicode

parent c1c00373
...@@ -3,6 +3,9 @@ import unittest ...@@ -3,6 +3,9 @@ import unittest
import codecs import codecs
import locale import locale
import sys, _testcapi, io import sys, _testcapi, io
import ctypes
SIZEOF_WCHAR_T = ctypes.sizeof(ctypes.c_wchar)
class Queue(object): class Queue(object):
""" """
...@@ -888,10 +891,10 @@ class PunycodeTest(unittest.TestCase): ...@@ -888,10 +891,10 @@ class PunycodeTest(unittest.TestCase):
self.assertEqual(uni, puny.decode("punycode")) self.assertEqual(uni, puny.decode("punycode"))
class UnicodeInternalTest(unittest.TestCase): class UnicodeInternalTest(unittest.TestCase):
@unittest.skipUnless(SIZEOF_WCHAR_T == 4, 'specific to 32-bit wchar_t')
def test_bug1251300(self): def test_bug1251300(self):
# Decoding with unicode_internal used to not correctly handle "code # Decoding with unicode_internal used to not correctly handle "code
# points" above 0x10ffff on UCS-4 builds. # points" above 0x10ffff on UCS-4 builds.
if sys.maxunicode > 0xffff:
ok = [ ok = [
(b"\x00\x10\xff\xff", "\U0010ffff"), (b"\x00\x10\xff\xff", "\U0010ffff"),
(b"\x00\x00\x01\x01", "\U00000101"), (b"\x00\x00\x01\x01", "\U00000101"),
...@@ -914,8 +917,8 @@ class UnicodeInternalTest(unittest.TestCase): ...@@ -914,8 +917,8 @@ class UnicodeInternalTest(unittest.TestCase):
self.assertRaises(UnicodeDecodeError, internal.decode, self.assertRaises(UnicodeDecodeError, internal.decode,
"unicode_internal") "unicode_internal")
@unittest.skipUnless(SIZEOF_WCHAR_T == 4, 'specific to 32-bit wchar_t')
def test_decode_error_attributes(self): def test_decode_error_attributes(self):
if sys.maxunicode > 0xffff:
try: try:
b"\x00\x00\x00\x00\x00\x11\x11\x00".decode("unicode_internal") b"\x00\x00\x00\x00\x00\x11\x11\x00".decode("unicode_internal")
except UnicodeDecodeError as ex: except UnicodeDecodeError as ex:
...@@ -926,8 +929,8 @@ class UnicodeInternalTest(unittest.TestCase): ...@@ -926,8 +929,8 @@ class UnicodeInternalTest(unittest.TestCase):
else: else:
self.fail() self.fail()
@unittest.skipUnless(SIZEOF_WCHAR_T == 4, 'specific to 32-bit wchar_t')
def test_decode_callback(self): def test_decode_callback(self):
if sys.maxunicode > 0xffff:
codecs.register_error("UnicodeInternalTest", codecs.ignore_errors) codecs.register_error("UnicodeInternalTest", codecs.ignore_errors)
decoder = codecs.getdecoder("unicode_internal") decoder = codecs.getdecoder("unicode_internal")
ab = "ab".encode("unicode_internal").decode() ab = "ab".encode("unicode_internal").decode()
......
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