Test to render all box drawing characters under the sanitizers
This commit is contained in:
parent
7f610f3b4e
commit
81143e0c7e
@ -14,6 +14,7 @@ typedef uint16_t glyph_index;
|
||||
typedef void (*send_sprite_to_gpu_func)(unsigned int, unsigned int, unsigned int, uint8_t*);
|
||||
send_sprite_to_gpu_func current_send_sprite_to_gpu = NULL;
|
||||
static PyObject *python_send_to_gpu_impl = NULL;
|
||||
extern PyTypeObject Line_Type;
|
||||
|
||||
typedef struct SpritePosition SpritePosition;
|
||||
|
||||
@ -495,6 +496,14 @@ set_send_sprite_to_gpu(PyObject UNUSED *self, PyObject *func) {
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
static PyObject*
|
||||
test_render_line(PyObject UNUSED *self, PyObject *args) {
|
||||
PyObject *line;
|
||||
if (!PyArg_ParseTuple(args, "O!", &Line_Type, &line)) return NULL;
|
||||
render_line((Line*)line);
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
static PyMethodDef module_methods[] = {
|
||||
METHODB(set_font_size, METH_VARARGS),
|
||||
METHODB(set_font, METH_VARARGS),
|
||||
@ -503,6 +512,7 @@ static PyMethodDef module_methods[] = {
|
||||
METHODB(send_prerendered_sprites, METH_VARARGS),
|
||||
METHODB(test_sprite_position_for, METH_VARARGS),
|
||||
METHODB(set_send_sprite_to_gpu, METH_O),
|
||||
METHODB(test_render_line, METH_VARARGS),
|
||||
{NULL, NULL, 0, NULL} /* Sentinel */
|
||||
};
|
||||
|
||||
|
||||
@ -4,34 +4,34 @@
|
||||
|
||||
from collections import OrderedDict
|
||||
|
||||
from kitty.fast_data_types import set_send_sprite_to_gpu
|
||||
from kitty.fast_data_types import set_send_sprite_to_gpu, test_render_line, sprite_map_set_limits
|
||||
from kitty.fonts.render import set_font_family
|
||||
from kitty.fonts.box_drawing import box_chars
|
||||
|
||||
from . import BaseTest
|
||||
|
||||
|
||||
class Rendering(BaseTest):
|
||||
|
||||
sprites = OrderedDict()
|
||||
def setUp(self):
|
||||
self.sprites = OrderedDict()
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
def send_to_gpu(x, y, z, data):
|
||||
cls.sprites[(x, y, z)] = data
|
||||
self.sprites[(x, y, z)] = data
|
||||
|
||||
set_send_sprite_to_gpu(send_to_gpu)
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
set_send_sprite_to_gpu(None)
|
||||
cls.sprites.clear()
|
||||
|
||||
def setUp(self):
|
||||
self.sprites.clear()
|
||||
sprite_map_set_limits(100000, 100)
|
||||
self.cell_width, self.cell_height = set_font_family(override_dpi=(96.0, 96.0))
|
||||
self.assertEqual([k[0] for k in self.sprites], [0, 1, 2, 3, 4])
|
||||
|
||||
def tearDown(self):
|
||||
self.sprites.clear()
|
||||
set_send_sprite_to_gpu(None)
|
||||
del self.sprites
|
||||
|
||||
def test_box_drawing(self):
|
||||
pass
|
||||
prerendered = len(self.sprites)
|
||||
s = self.create_screen(cols=len(box_chars), lines=1, scrollback=0)
|
||||
s.draw(''.join(box_chars))
|
||||
line = s.line(0)
|
||||
test_render_line(line)
|
||||
self.assertEqual(len(self.sprites), prerendered + len(box_chars))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user