Skip to content

Commit bf96760

Browse files
committed
Crash when printing Unicode to redirected cout
Add failing tests
1 parent 5443043 commit bf96760

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed

tests/test_iostream.py

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,86 @@ def test_captured_large_string(capsys):
6868
assert stdout == msg
6969
assert stderr == ""
7070

71+
def test_captured_utf8_2byte_offset0(capsys):
72+
msg = "\u07FF"
73+
msg = "" + msg * (1024 // len(msg) + 1)
74+
75+
m.captured_output_default(msg)
76+
stdout, stderr = capsys.readouterr()
77+
assert stdout == msg
78+
assert stderr == ""
79+
80+
def test_captured_utf8_2byte_offset1(capsys):
81+
msg = "\u07FF"
82+
msg = "1" + msg * (1024 // len(msg) + 1)
83+
84+
m.captured_output_default(msg)
85+
stdout, stderr = capsys.readouterr()
86+
assert stdout == msg
87+
assert stderr == ""
88+
89+
def test_captured_utf8_3byte_offset0(capsys):
90+
msg = "\uFFFF"
91+
msg = "" + msg * (1024 // len(msg) + 1)
92+
93+
m.captured_output_default(msg)
94+
stdout, stderr = capsys.readouterr()
95+
assert stdout == msg
96+
assert stderr == ""
97+
98+
def test_captured_utf8_3byte_offset1(capsys):
99+
msg = "\uFFFF"
100+
msg = "1" + msg * (1024 // len(msg) + 1)
101+
102+
m.captured_output_default(msg)
103+
stdout, stderr = capsys.readouterr()
104+
assert stdout == msg
105+
assert stderr == ""
106+
107+
def test_captured_utf8_3byte_offset2(capsys):
108+
msg = "\uFFFF"
109+
msg = "12" + msg * (1024 // len(msg) + 1)
110+
111+
m.captured_output_default(msg)
112+
stdout, stderr = capsys.readouterr()
113+
assert stdout == msg
114+
assert stderr == ""
115+
116+
def test_captured_utf8_4byte_offset0(capsys):
117+
msg = "\U0010FFFF"
118+
msg = "" + msg * (1024 // len(msg) + 1)
119+
120+
m.captured_output_default(msg)
121+
stdout, stderr = capsys.readouterr()
122+
assert stdout == msg
123+
assert stderr == ""
124+
125+
def test_captured_utf8_4byte_offset1(capsys):
126+
msg = "\U0010FFFF"
127+
msg = "1" + msg * (1024 // len(msg) + 1)
128+
129+
m.captured_output_default(msg)
130+
stdout, stderr = capsys.readouterr()
131+
assert stdout == msg
132+
assert stderr == ""
133+
134+
def test_captured_utf8_4byte_offset2(capsys):
135+
msg = "\U0010FFFF"
136+
msg = "12" + msg * (1024 // len(msg) + 1)
137+
138+
m.captured_output_default(msg)
139+
stdout, stderr = capsys.readouterr()
140+
assert stdout == msg
141+
assert stderr == ""
142+
143+
def test_captured_utf8_4byte_offset3(capsys):
144+
msg = "\U0010FFFF"
145+
msg = "123" + msg * (1024 // len(msg) + 1)
146+
147+
m.captured_output_default(msg)
148+
stdout, stderr = capsys.readouterr()
149+
assert stdout == msg
150+
assert stderr == ""
71151

72152
def test_guard_capture(capsys):
73153
msg = "I've been redirected to Python, I hope!"

0 commit comments

Comments
 (0)