Add some threading tests

This commit is contained in:
Kovid Goyal
2023-11-07 11:07:26 +05:30
parent 08d99967dc
commit 9f337e93fc

View File

@@ -51,8 +51,7 @@ class TestParser(BaseTest):
def write_bytes(self, screen, write_buf, data):
if isinstance(data, str):
data = data.encode('utf-8')
dest = screen.test_create_write_buffer()
s = screen.test_commit_write_buffer(data, dest)
s = screen.test_commit_write_buffer(data, write_buf)
return data[s:]
def parse_written_data(self, screen, *cmds):
@@ -69,6 +68,29 @@ class TestParser(BaseTest):
parse_bytes(s, x, cd)
self.ae(cmds, cd.get_result())
def test_parser_threading(self):
s = self.create_screen()
self.assertFalse(self.write_bytes(s, self.create_write_buffer(s), 'a\x1b]2;some title'))
b = self.create_write_buffer(s)
self.parse_written_data(s, 'a')
self.assertFalse(self.write_bytes(s, b, ' full\x1b\\'))
self.parse_written_data(s, ('set_title', 'some title full'))
self.assertFalse(self.write_bytes(s, self.create_write_buffer(s), 'a\x1b]2;some title\x1b'))
b = self.create_write_buffer(s)
self.parse_written_data(s, 'a')
self.assertFalse(self.write_bytes(s, b, '\\b'))
self.parse_written_data(s, ('set_title', 'some title'), 'b')
self.assertFalse(self.write_bytes(s, self.create_write_buffer(s), '1\x1b'))
self.parse_written_data(s, '1')
self.assertFalse(self.write_bytes(s, self.create_write_buffer(s), 'E2'))
self.parse_written_data(s, ('screen_nel',), ('draw', '2'))
self.assertFalse(self.write_bytes(s, self.create_write_buffer(s), '1\x1b[2'))
self.parse_written_data(s, '1')
self.assertFalse(self.write_bytes(s, self.create_write_buffer(s), '3mx'))
self.parse_written_data(s, ('select_graphic_rendition', '23'), 'x')
def test_base64(self):
for src, expected in {
'bGlnaHQgdw==': 'light w',