diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/common/test_tablet_example.c | 37 | ||||
| -rw-r--r-- | tests/wayland/test_clipboard.c | 2 | ||||
| -rw-r--r-- | tests/x11/test_tablet_native.c | 15 |
3 files changed, 28 insertions, 26 deletions
diff --git a/tests/common/test_tablet_example.c b/tests/common/test_tablet_example.c index 1658174..15dde9c 100644 --- a/tests/common/test_tablet_example.c +++ b/tests/common/test_tablet_example.c @@ -11,43 +11,48 @@ static void pointer(struct app *app, enum yasl_pointer_kind kind, input(app, &event); } -static uint32_t pixel(const struct app *app, int x, int y) -{ - return app->canvas[(size_t)y * app->geometry.size.x + x]; -} - int main(void) { struct app app = {0}; assert(resize_canvas(&app, (struct yasl_geometry){{400, 300}, 120})); pointer(&app, YASL_PTR_MOTION, YASL_PTR_DEV_PEN, 3, 80, 160, 65535); - assert(pixel(&app, 80, 160) == PAPER); /* Hover never paints. */ + /* Hover never paints. */ + assert(app.canvas[(size_t)160 * app.geometry.size.x + 80] == PAPER); pointer(&app, YASL_PTR_PRESS, YASL_PTR_DEV_PEN, 2, 80, 160, 65535); - assert(!app.down && pixel(&app, 80, 160) == PAPER); /* Side button isn't the tip. */ + /* Side button isn't the tip. */ + assert(!app.down && + app.canvas[(size_t)160 * app.geometry.size.x + 80] == PAPER); pointer(&app, YASL_PTR_PRESS, YASL_PTR_DEV_PEN, 0, 80, 160, 0); - assert(app.down && pixel(&app, 80, 160) == INK && pixel(&app, 90, 160) == PAPER); + assert(app.down && + app.canvas[(size_t)160 * app.geometry.size.x + 80] == INK && + app.canvas[(size_t)160 * app.geometry.size.x + 90] == PAPER); pointer(&app, YASL_PTR_MOTION, YASL_PTR_DEV_PEN, 0, 80, 160, 65535); - assert(pixel(&app, 100, 160) == INK); /* Stationary pressure widens brush. */ + /* Stationary pressure widens brush. */ + assert(app.canvas[(size_t)160 * app.geometry.size.x + 100] == INK); pointer(&app, YASL_PTR_MOTION, YASL_PTR_DEV_PEN, 0, 180, 160, 20000); - assert(pixel(&app, 130, 160) == INK); /* Segments are continuous. */ + /* Segments are continuous. */ + assert(app.canvas[(size_t)160 * app.geometry.size.x + 130] == INK); pointer(&app, YASL_PTR_RELEASE, YASL_PTR_DEV_PEN, 0, 180, 160, 0); pointer(&app, YASL_PTR_MOTION, YASL_PTR_DEV_PEN, 3, 250, 160, 65535); - assert(!app.down && pixel(&app, 250, 160) == PAPER); + assert(!app.down && app.canvas[(size_t)160 * app.geometry.size.x + 250] == PAPER); pointer(&app, YASL_PTR_PRESS, YASL_PTR_DEV_ERASER, 0, 80, 160, 65535); - assert(pixel(&app, 80, 160) == PAPER && pixel(&app, 130, 160) == INK); + assert(app.canvas[(size_t)160 * app.geometry.size.x + 80] == PAPER && + app.canvas[(size_t)160 * app.geometry.size.x + 130] == INK); struct yasl_input_event reset = {.kind = YASL_INPUT_RESET}; input(&app, &reset); pointer(&app, YASL_PTR_MOTION, YASL_PTR_DEV_ERASER, 0, 130, 160, 65535); - assert(!app.down && pixel(&app, 130, 160) == INK); + assert(!app.down && app.canvas[(size_t)160 * app.geometry.size.x + 130] == INK); pointer(&app, YASL_PTR_PRESS, YASL_PTR_DEV_MOUSE, 0, 300, 200, 0); - assert(pixel(&app, 300, 200) == INK); + assert(app.canvas[(size_t)200 * app.geometry.size.x + 300] == INK); struct yasl_input_event blur = {.kind = YASL_INPUT_FOCUS, .focus.focused = false}; input(&app, &blur); assert(!app.down); assert(resize_canvas(&app, (struct yasl_geometry){{800, 600}, 240})); - assert(pixel(&app, 600, 400) == INK && !app.previous); /* DPI preserves logical drawing. */ + /* DPI preserves logical drawing. */ + assert(app.canvas[(size_t)400 * app.geometry.size.x + 600] == INK && + !app.previous); clear_canvas(&app); - assert(pixel(&app, 600, 400) == PAPER); + assert(app.canvas[(size_t)400 * app.geometry.size.x + 600] == PAPER); free(app.canvas); return 0; } diff --git a/tests/wayland/test_clipboard.c b/tests/wayland/test_clipboard.c index 825564e..ff84209 100644 --- a/tests/wayland/test_clipboard.c +++ b/tests/wayland/test_clipboard.c @@ -30,7 +30,7 @@ int main(void) received = (struct received){0}; int fds[2]; assert(pipe(fds) == 0); - assert(start_transfer(&c, fds[0], false, false)); + assert(start_transfer_text(&c, fds[0], false, false, c.text)); assert(write(fds[1], cases[i].bytes, cases[i].len) == (ssize_t)cases[i].len); close(fds[1]); for (int steps = 0; c.transfers && steps < 10; steps++) diff --git a/tests/x11/test_tablet_native.c b/tests/x11/test_tablet_native.c index 6e7eeb4..f12ec7f 100644 --- a/tests/x11/test_tablet_native.c +++ b/tests/x11/test_tablet_native.c @@ -75,11 +75,6 @@ static void pump(int fd, struct yasl_display *display, struct yasl_surface *surf assert(!app->failed); } -static uint32_t canvas_pixel(struct app *app, int x, int y) -{ - return app->canvas[(size_t)y * app->geometry.size.x + x]; -} - static void set_eraser_property(Display *display) { int count = 0; @@ -134,20 +129,21 @@ int main(int argc, char **argv) pump(pen_fd, display, surface, &app); assert(app.visible && !app.down && app.pointer.device == YASL_PTR_DEV_PEN); assert(app.pointer.pos.x == 150 && app.pointer.pos.y == 200); - assert(canvas_pixel(&app, 150, 200) == PAPER); + assert(app.canvas[(size_t)200 * app.geometry.size.x + 150] == PAPER); xf86ITEventButton button = {.header = {sizeof(button), XF86IT_EVENT_BUTTON}, .is_absolute = 1, .button = 1, .is_press = 1, .valuators = motion.valuators}; button.valuators.valuators[4] = 250; /* Driver pressure range is 0..1000. */ send_all(pen_fd, &button, sizeof(button)); pump(pen_fd, display, surface, &app); assert(app.down && app.pointer.pen.pressure == 16384); - assert(canvas_pixel(&app, 150, 200) == INK && canvas_pixel(&app, 170, 200) == PAPER); + assert(app.canvas[(size_t)200 * app.geometry.size.x + 150] == INK && + app.canvas[(size_t)200 * app.geometry.size.x + 170] == PAPER); motion.valuators.mask[0] = 1 << 4; /* No position change. */ motion.valuators.valuators[4] = 1000; send_all(pen_fd, &motion, sizeof(motion)); pump(pen_fd, display, surface, &app); assert(app.down && app.pointer.pen.pressure == 65535); - assert(canvas_pixel(&app, 170, 200) == INK); + assert(app.canvas[(size_t)200 * app.geometry.size.x + 170] == INK); /* Check the actual window's pixels too, after the example presents. */ XImage *image = XGetImage(x, window, 170, 200, 1, 1, AllPlanes, ZPixmap); assert(image && (XGetPixel(image, 0, 0) & 0xffffff) == (INK & 0xffffff)); @@ -165,7 +161,8 @@ int main(int argc, char **argv) send_all(eraser_fd, &button, sizeof(button)); pump(eraser_fd, display, surface, &app); assert(app.down && app.pointer.device == YASL_PTR_DEV_ERASER && app.pointer.pen.pressure == 65535); - assert(canvas_pixel(&app, 150, 200) == PAPER && canvas_pixel(&app, 170, 200) == PAPER); + assert(app.canvas[(size_t)200 * app.geometry.size.x + 150] == PAPER && + app.canvas[(size_t)200 * app.geometry.size.x + 170] == PAPER); button.is_press = 0; send_all(eraser_fd, &button, sizeof(button)); pump(eraser_fd, display, surface, &app); |
