From d0d769f26b4778fc090570359f41ea261c849394 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 28 Sep 2017 13:20:48 +0530 Subject: [PATCH] Test for zlib de-compression --- kitty_tests/graphics.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/kitty_tests/graphics.py b/kitty_tests/graphics.py index f3b210abe..5414168f2 100644 --- a/kitty_tests/graphics.py +++ b/kitty_tests/graphics.py @@ -3,12 +3,13 @@ # License: GPL v3 Copyright: 2016, Kovid Goyal import os - -from . import BaseTest +import zlib from base64 import standard_b64encode from kitty.fast_data_types import parse_bytes +from . import BaseTest + def img_path(name): base = os.path.dirname(os.path.abspath(__file__)) @@ -44,15 +45,17 @@ class TestGraphics(BaseTest): return res.decode('ascii').partition(';')[2].partition(':')[0].partition('\033')[0] def sl(payload, **kw): + pc = kw.pop('payload_check', None) if isinstance(payload, str): payload = payload.encode('utf-8') cid = kw.setdefault('i', 1) self.ae('OK', l(payload, **kw)) img = g.image_for_client_id(cid) self.ae(img['client_id'], cid) - self.ae(img['data'], payload) + self.ae(img['data'], payload if pc is None else pc) if 's' in kw: self.ae((kw['s'], kw['v']), (img['width'], img['height'])) + self.ae(img['is_4byte_aligned'], kw.get('f') != 24) return img # Test simple load @@ -68,3 +71,7 @@ class TestGraphics(BaseTest): self.ae(l('mnop', m=0), 'OK') img = g.image_for_client_id(1) self.ae(img['data'], b'abcdefghijklmnop') + + # Test compression + random_data = os.urandom(3 * 1024) + sl(zlib.compress(random_data), s=24, v=32, o='z', payload_check=random_data)