mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-22 21:32:31 +00:00
Make numerous improvements
- Python static hello world now 1.8mb - Python static fully loaded now 10mb - Python HTTPS client now uses MbedTLS - Python REPL now completes import stmts - Increase stack size for Python for now - Begin synthesizing posixpath and ntpath - Restore Python \N{UNICODE NAME} support - Restore Python NFKD symbol normalization - Add optimized code path for Intel SHA-NI - Get more Python unit tests passing faster - Get Python help() pagination working on NT - Python hashlib now supports MbedTLS PBKDF2 - Make memcpy/memmove/memcmp/bcmp/etc. faster - Add Mersenne Twister and Vigna to LIBC_RAND - Provide privileged __printf() for error code - Fix zipos opendir() so that it reports ENOTDIR - Add basic chmod() implementation for Windows NT - Add Cosmo's best functions to Python cosmo module - Pin function trace indent depth to that of caller - Show memory diagram on invalid access in MODE=dbg - Differentiate stack overflow on crash in MODE=dbg - Add stb_truetype and tools for analyzing font files - Upgrade to UNICODE 13 and reduce its binary footprint - COMPILE.COM now logs resource usage of build commands - Start implementing basic poll() support on bare metal - Set getauxval(AT_EXECFN) to GetModuleFileName() on NT - Add descriptions to strerror() in non-TINY build modes - Add COUNTBRANCH() macro to help with micro-optimizations - Make error / backtrace / asan / memory code more unbreakable - Add fast perfect C implementation of μ-Law and a-Law audio codecs - Make strtol() functions consistent with other libc implementations - Improve Linenoise implementation (see also github.com/jart/bestline) - COMPILE.COM now suppresses stdout/stderr of successful build commands
This commit is contained in:
parent
fa7b4f5bd1
commit
39bf41f4eb
806 changed files with 77494 additions and 63859 deletions
67
third_party/python/Lib/test/test_codecs.py
vendored
67
third_party/python/Lib/test/test_codecs.py
vendored
|
@ -135,7 +135,7 @@ try:
|
|||
import ctypes
|
||||
except ImportError:
|
||||
ctypes = None
|
||||
SIZEOF_WCHAR_T = -1
|
||||
SIZEOF_WCHAR_T = 4
|
||||
else:
|
||||
SIZEOF_WCHAR_T = ctypes.sizeof(ctypes.c_wchar)
|
||||
|
||||
|
@ -3196,39 +3196,38 @@ class CodePageTest(unittest.TestCase):
|
|||
self.assertRaises(UnicodeEncodeError,
|
||||
codecs.code_page_encode, cp, text, errors)
|
||||
|
||||
# TODO(jart): pycomp.com needs \N thing
|
||||
# def test_cp932(self):
|
||||
# self.check_encode(932, (
|
||||
# ('abc', 'strict', b'abc'),
|
||||
# ('\uff44\u9a3e', 'strict', b'\x82\x84\xe9\x80'),
|
||||
# # test error handlers
|
||||
# ('\xff', 'strict', None),
|
||||
# ('[\xff]', 'ignore', b'[]'),
|
||||
# ('[\xff]', 'replace', b'[y]'),
|
||||
# ('[\u20ac]', 'replace', b'[?]'),
|
||||
# ('[\xff]', 'backslashreplace', b'[\\xff]'),
|
||||
# ('[\xff]', 'namereplace',
|
||||
# b'[\\N{LATIN SMALL LETTER Y WITH DIAERESIS}]'),
|
||||
# ('[\xff]', 'xmlcharrefreplace', b'[ÿ]'),
|
||||
# ('\udcff', 'strict', None),
|
||||
# ('[\udcff]', 'surrogateescape', b'[\xff]'),
|
||||
# ('[\udcff]', 'surrogatepass', None),
|
||||
# ))
|
||||
# self.check_decode(932, (
|
||||
# (b'abc', 'strict', 'abc'),
|
||||
# (b'\x82\x84\xe9\x80', 'strict', '\uff44\u9a3e'),
|
||||
# # invalid bytes
|
||||
# (b'[\xff]', 'strict', None),
|
||||
# (b'[\xff]', 'ignore', '[]'),
|
||||
# (b'[\xff]', 'replace', '[\ufffd]'),
|
||||
# (b'[\xff]', 'backslashreplace', '[\\xff]'),
|
||||
# (b'[\xff]', 'surrogateescape', '[\udcff]'),
|
||||
# (b'[\xff]', 'surrogatepass', None),
|
||||
# (b'\x81\x00abc', 'strict', None),
|
||||
# (b'\x81\x00abc', 'ignore', '\x00abc'),
|
||||
# (b'\x81\x00abc', 'replace', '\ufffd\x00abc'),
|
||||
# (b'\x81\x00abc', 'backslashreplace', '\\x81\x00abc'),
|
||||
# ))
|
||||
def test_cp932(self):
|
||||
self.check_encode(932, (
|
||||
('abc', 'strict', b'abc'),
|
||||
('\uff44\u9a3e', 'strict', b'\x82\x84\xe9\x80'),
|
||||
# test error handlers
|
||||
('\xff', 'strict', None),
|
||||
('[\xff]', 'ignore', b'[]'),
|
||||
('[\xff]', 'replace', b'[y]'),
|
||||
('[\u20ac]', 'replace', b'[?]'),
|
||||
('[\xff]', 'backslashreplace', b'[\\xff]'),
|
||||
('[\xff]', 'namereplace',
|
||||
b'[\\N{LATIN SMALL LETTER Y WITH DIAERESIS}]'),
|
||||
('[\xff]', 'xmlcharrefreplace', b'[ÿ]'),
|
||||
('\udcff', 'strict', None),
|
||||
('[\udcff]', 'surrogateescape', b'[\xff]'),
|
||||
('[\udcff]', 'surrogatepass', None),
|
||||
))
|
||||
self.check_decode(932, (
|
||||
(b'abc', 'strict', 'abc'),
|
||||
(b'\x82\x84\xe9\x80', 'strict', '\uff44\u9a3e'),
|
||||
# invalid bytes
|
||||
(b'[\xff]', 'strict', None),
|
||||
(b'[\xff]', 'ignore', '[]'),
|
||||
(b'[\xff]', 'replace', '[\ufffd]'),
|
||||
(b'[\xff]', 'backslashreplace', '[\\xff]'),
|
||||
(b'[\xff]', 'surrogateescape', '[\udcff]'),
|
||||
(b'[\xff]', 'surrogatepass', None),
|
||||
(b'\x81\x00abc', 'strict', None),
|
||||
(b'\x81\x00abc', 'ignore', '\x00abc'),
|
||||
(b'\x81\x00abc', 'replace', '\ufffd\x00abc'),
|
||||
(b'\x81\x00abc', 'backslashreplace', '\\x81\x00abc'),
|
||||
))
|
||||
|
||||
def test_cp1252(self):
|
||||
self.check_encode(1252, (
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue