Replace unencodable XML chars with their printable representation, so that, xmllint can parse test outputs without error. Closes #9894 Co-authored-by: Tristan Partin <tristan@partin.io>pull/11583/head
parent
61984bcfa3
commit
bd3d2cf918
4 changed files with 121 additions and 2 deletions
@ -0,0 +1,4 @@ |
||||
project('replace unencodable xml chars') |
||||
|
||||
test_script = find_program('script.py') |
||||
test('main', test_script) |
@ -0,0 +1,37 @@ |
||||
#!/usr/bin/env python3 |
||||
|
||||
import sys |
||||
|
||||
# Print base string(\nHello Meson\n) to see valid chars are not replaced |
||||
print('\n\x48\x65\x6c\x6c\x6f\x20\x4d\x65\x73\x6f\x6e\n') |
||||
# Print invalid input from all known unencodable chars |
||||
print( |
||||
'\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0e\x0f\x10\x11' |
||||
'\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x7f') |
||||
|
||||
# Cover for potential encoding issues |
||||
try: |
||||
print( |
||||
'\x80\x81\x82\x83\x84\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f' |
||||
'\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e' |
||||
'\x9f\ufdd0\ufdd1\ufdd2\ufdd3\ufdd4\ufdd5\ufdd6\ufdd7\ufdd8' |
||||
'\ufdd9\ufdda\ufddb\ufddc\ufddd\ufdde\ufddf\ufde0\ufde1' |
||||
'\ufde2\ufde3\ufde4\ufde5\ufde6\ufde7\ufde8\ufde9\ufdea' |
||||
'\ufdeb\ufdec\ufded\ufdee\ufdef\ufffe\uffff') |
||||
except: |
||||
pass |
||||
|
||||
# Cover for potential encoding issues |
||||
try: |
||||
if sys.maxunicode >= 0x10000: |
||||
print( |
||||
'\U0001fffe\U0001ffff\U0002fffe\U0002ffff' |
||||
'\U0003fffe\U0003ffff\U0004fffe\U0004ffff' |
||||
'\U0005fffe\U0005ffff\U0006fffe\U0006ffff' |
||||
'\U0007fffe\U0007ffff\U0008fffe\U0008ffff' |
||||
'\U0009fffe\U0009ffff\U000afffe\U000affff' |
||||
'\U000bfffe\U000bffff\U000cfffe\U000cffff' |
||||
'\U000dfffe\U000dffff\U000efffe\U000effff' |
||||
'\U000ffffe\U000fffff\U0010fffe\U0010ffff') |
||||
except: |
||||
pass |
Loading…
Reference in new issue