@@ -106,6 +106,27 @@ class Test_SJIS_2004(multibytecodec_support.TestBase, unittest.TestCase):
106106 b"\x85 Gℜ\x85 Q = ⟨ሴ⟩"
107107 )
108108
109+ def test_null_terminator (self ):
110+ # see gh-101828
111+ cases = (
112+ "バルーンフルーツ" ,
113+ "ライフアップキノコ" ,
114+ "テスト" ,
115+ "'Tis but a scratch!"
116+ )
117+ for case in cases :
118+ with self .subTest (case = case ):
119+ encode_w_null = (case + "\0 " ).encode (self .encoding )
120+ encode_plus_null = case .encode (self .encoding ) + "\0 " .encode (self .encoding )
121+ self .assertTrue (encode_w_null .endswith (b'\x00 ' ))
122+ self .assertEqual (encode_w_null , encode_plus_null )
123+
124+ encode_w_null_2 = encode_w_null + encode_w_null
125+ encode_plus_null_2 = encode_plus_null + encode_plus_null
126+ self .assertEqual (encode_w_null_2 .count (b'\x00 ' ), 2 )
127+ self .assertEqual (encode_w_null_2 , encode_plus_null_2 )
128+
129+
109130class Test_SJISX0213 (multibytecodec_support .TestBase , unittest .TestCase ):
110131 encoding = 'shift_jisx0213'
111132 tstring = multibytecodec_support .load_teststring ('shift_jisx0213' )
@@ -121,6 +142,26 @@ class Test_SJISX0213(multibytecodec_support.TestBase, unittest.TestCase):
121142 "\xab \u211c \xbb = \u2329 \u1234 \u232a " ,
122143 b"\x85 Gℜ\x85 Q = ⟨ሴ⟩"
123144 )
145+ def test_null_terminator (self ):
146+ # see gh-101828
147+ cases = (
148+ "バルーンフルーツ" ,
149+ "ライフアップキノコ" ,
150+ "テスト" ,
151+ "'Tis but a scratch!"
152+ )
153+ for case in cases :
154+ with self .subTest (case = case ):
155+ encode_w_null = (case + "\0 " ).encode (self .encoding )
156+ encode_plus_null = case .encode (self .encoding ) + "\0 " .encode (self .encoding )
157+ self .assertTrue (encode_w_null .endswith (b'\x00 ' ))
158+ self .assertEqual (encode_w_null , encode_plus_null )
159+
160+ encode_w_null_2 = encode_w_null + encode_w_null
161+ encode_plus_null_2 = encode_plus_null + encode_plus_null
162+ self .assertEqual (encode_w_null_2 .count (b'\x00 ' ), 2 )
163+ self .assertEqual (encode_w_null_2 , encode_plus_null_2 )
164+
124165
125166if __name__ == "__main__" :
126167 unittest .main ()
0 commit comments