summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/common/test_tablet_example.c37
-rw-r--r--tests/wayland/test_clipboard.c2
-rw-r--r--tests/x11/test_tablet_native.c15
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);