diff options
| author | Berke Güzel <wenekar1@gmail.com> | 2026-10-13 15:41:39 +0300 |
|---|---|---|
| committer | Berke Güzel <wenekar1@gmail.com> | 2026-10-13 15:41:39 +0300 |
| commit | 482f799d356a8fbb8f585c4de7cc0992b8dc6fd3 (patch) | |
| tree | 85551a69e3c356da7b9b514224e25a6c2f8d29b9 /tests/cocoa | |
| parent | 537b2d768b31deb0f95c5122e0d562e4406ae9a0 (diff) | |
Migrate tests to the unified event API
Port backend, input, tablet and app tests from yasl_input_event and
YASL_INPUT_* to struct yasl_event and YASL_EVENT_*. The input allocation
test links input.c on its own, so it stubs yasl_loop_now_ns() for the new
event timestamps.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'tests/cocoa')
| -rw-r--r-- | tests/cocoa/test_cursor.m | 6 | ||||
| -rw-r--r-- | tests/cocoa/test_keyboard.m | 43 | ||||
| -rw-r--r-- | tests/cocoa/test_ownership.m | 16 | ||||
| -rw-r--r-- | tests/cocoa/test_tablet.m | 42 |
4 files changed, 53 insertions, 54 deletions
diff --git a/tests/cocoa/test_cursor.m b/tests/cocoa/test_cursor.m index aaca815..4054d59 100644 --- a/tests/cocoa/test_cursor.m +++ b/tests/cocoa/test_cursor.m @@ -37,10 +37,10 @@ int main(void) [view mouseMoved:motion]; [view cursorUpdate:cursor]; assert([NSCursor currentCursor] == hidden); - struct yasl_input_event event; + struct yasl_event event; bool moved = false; - while (yasl_surface_input_poll(surface, &event)) - if (event.kind == YASL_INPUT_MOUSE && event.mouse.kind == YASL_PTR_MOTION) + while (yasl_surface_poll_event(surface, &event)) + if (event.type == YASL_EVENT_POINTER_MOTION) moved = true; assert(moved); diff --git a/tests/cocoa/test_keyboard.m b/tests/cocoa/test_keyboard.m index d6a1336..f93a745 100644 --- a/tests/cocoa/test_keyboard.m +++ b/tests/cocoa/test_keyboard.m @@ -31,18 +31,18 @@ } @end -static struct yasl_input_event next(struct yasl_surface *surface, enum yasl_input_kind kind) +static struct yasl_event next(struct yasl_surface *surface, enum yasl_event_type type) { - struct yasl_input_event event; - assert(yasl_surface_input_poll(surface, &event)); - assert(event.kind == kind && event.surface == surface); + struct yasl_event event; + assert(yasl_surface_poll_event(surface, &event)); + assert(event.type == type && event.surface == surface); return event; } static void empty(struct yasl_surface *surface) { - struct yasl_input_event event; - assert(!yasl_surface_input_poll(surface, &event)); + struct yasl_event event; + assert(!yasl_surface_poll_event(surface, &event)); } int main(void) @@ -55,8 +55,8 @@ int main(void) assert(surface); NSWindow *window = (NSWindow *)yasl_surface_get_native_handle(surface); NSView<NSTextInputClient> *view = (id)window.contentView; - struct yasl_input_event event; - while (yasl_surface_input_poll(surface, &event)) {} + struct yasl_event event; + while (yasl_surface_poll_event(surface, &event)) {} InputSample *sample = [InputSample new]; NSEvent *native = (NSEvent *)sample; @@ -65,7 +65,7 @@ int main(void) sample.label = @"q"; sample.shiftedLabel = @"Q"; [view keyUp:native]; - event = next(surface, YASL_INPUT_KEY); + event = next(surface, YASL_EVENT_KEY); assert(event.key.key == YASL_KEY_A && event.key.native_code == 0); assert(event.key.action == YASL_KEY_RELEASE); assert(event.key.codepoint == 'q' && event.key.shifted == 'Q'); @@ -73,18 +73,18 @@ int main(void) sample.label = @"😀"; /* One scalar, two UTF-16 units. */ sample.shiftedLabel = @"ab"; [view keyUp:native]; - event = next(surface, YASL_INPUT_KEY); + event = next(surface, YASL_EVENT_KEY); assert(event.key.codepoint == 0x1f600 && event.key.shifted == 0); sample.type = NSEventTypeFlagsChanged; sample.keyCode = 56; /* Left Shift. */ sample.modifierFlags = NSEventModifierFlagShift | 0x0002; [view flagsChanged:native]; - event = next(surface, YASL_INPUT_KEY); + event = next(surface, YASL_EVENT_KEY); assert(event.key.key == YASL_KEY_LEFT_SHIFT && event.key.action == YASL_KEY_PRESS); assert(event.key.mods == YASL_MOD_SHIFT && !event.key.codepoint && !event.key.shifted); sample.modifierFlags = 0; [view flagsChanged:native]; - assert(next(surface, YASL_INPUT_KEY).key.action == YASL_KEY_RELEASE); + assert(next(surface, YASL_EVENT_KEY).key.action == YASL_KEY_RELEASE); /* Native text services own preedit and commits. Marked text is not an * insertion, and commits retain all UTF-8 bytes, including non-BMP. */ @@ -93,8 +93,8 @@ int main(void) assert(strcmp(yasl_surface_ime_preedit(surface), "é") == 0); empty(surface); [view insertText:@"😀é" replacementRange:NSMakeRange(NSNotFound, 0)]; - event = next(surface, YASL_INPUT_TEXT); - assert(event.text.len == strlen("😀é") && strcmp(event.text.text, "😀é") == 0); + event = next(surface, YASL_EVENT_TEXT); + assert(event.text.len == strlen("😀é") && strcmp(event.text.data, "😀é") == 0); assert(!yasl_surface_ime_preedit(surface)); empty(surface); @@ -104,9 +104,9 @@ int main(void) modifierFlags:0 timestamp:0 windowNumber:window.windowNumber context:nil characters:@"a" charactersIgnoringModifiers:@"a" isARepeat:NO keyCode:0]; [view keyDown:press]; - assert(next(surface, YASL_INPUT_KEY).key.key == YASL_KEY_A); - event = next(surface, YASL_INPUT_TEXT); - assert(event.text.len == 1 && event.text.text[0] == 'a'); + assert(next(surface, YASL_EVENT_KEY).key.key == YASL_KEY_A); + event = next(surface, YASL_EVENT_TEXT); + assert(event.text.len == 1 && event.text.data[0] == 'a'); empty(surface); sample.type = NSEventTypeScrollWheel; @@ -114,15 +114,14 @@ int main(void) sample.scrollingDeltaX = -2.5; sample.scrollingDeltaY = 1.25; [view scrollWheel:native]; - event = next(surface, YASL_INPUT_MOUSE); - assert(event.mouse.kind == YASL_PTR_SCROLL); - assert(event.mouse.scroll.x == 0.25 && event.mouse.scroll.y == -0.125); + event = next(surface, YASL_EVENT_POINTER_SCROLL); + assert(event.pointer.scroll.x == 0.25 && event.pointer.scroll.y == -0.125); sample.hasPreciseScrollingDeltas = NO; sample.scrollingDeltaX = 1; sample.scrollingDeltaY = -1; [view scrollWheel:native]; - event = next(surface, YASL_INPUT_MOUSE); - assert(event.mouse.scroll.x == -1 && event.mouse.scroll.y == 1); + event = next(surface, YASL_EVENT_POINTER_SCROLL); + assert(event.pointer.scroll.x == -1 && event.pointer.scroll.y == 1); sample.scrollingDeltaX = NAN; [view scrollWheel:native]; empty(surface); diff --git a/tests/cocoa/test_ownership.m b/tests/cocoa/test_ownership.m index 4e3bbd6..5fd5cbf 100644 --- a/tests/cocoa/test_ownership.m +++ b/tests/cocoa/test_ownership.m @@ -19,8 +19,8 @@ int main(void) assert(yasl_cocoa_surface_get_window(s) == window); assert(yasl_cocoa_surface_get_view(s) == window.contentView); assert([window isKindOfClass:[NSWindow class]] && window.contentView); - struct yasl_input_event event; - while (yasl_surface_input_poll(s, &event)) {} + struct yasl_event event; + while (yasl_surface_poll_event(s, &event)) {} @autoreleasepool { for (int i = 0; i < 600; i++) { char text[32]; @@ -34,19 +34,19 @@ int main(void) for (int i = 0; i < 600; i++) { char text[32]; snprintf(text, sizeof(text), "paste-%d", i); - assert(yasl_surface_input_poll(s, &event)); - assert(event.kind == YASL_INPUT_PASTE && strcmp(event.paste.text, text) == 0); + assert(yasl_surface_poll_event(s, &event)); + assert(event.type == YASL_EVENT_PASTE && strcmp(event.text.data, text) == 0); } - const char *last = event.paste.text; - assert(!yasl_surface_input_poll(s, &event)); + const char *last = event.text.data; + assert(!yasl_surface_poll_event(s, &event)); @autoreleasepool { yasl_display_copy(d, YASL_CLIPBOARD, "new selection"); } assert(strcmp(last, "paste-599") == 0); @autoreleasepool { yasl_display_copy(d, YASL_CLIPBOARD, ""); yasl_display_paste(d, YASL_CLIPBOARD, s); } - assert(yasl_surface_input_poll(s, &event)); - assert(event.kind == YASL_INPUT_PASTE && !event.paste.len && !event.paste.text[0]); + assert(yasl_surface_poll_event(s, &event)); + assert(event.type == YASL_EVENT_PASTE && !event.text.len && !event.text.data[0]); yasl_surface_destroy(s); yasl_display_close(d); return 0; diff --git a/tests/cocoa/test_tablet.m b/tests/cocoa/test_tablet.m index ed6dc64..715a66e 100644 --- a/tests/cocoa/test_tablet.m +++ b/tests/cocoa/test_tablet.m @@ -35,13 +35,13 @@ } @end -static struct yasl_mouse_event next(struct yasl_surface *surface) +static struct yasl_event next(struct yasl_surface *surface) { - struct yasl_input_event event; - while (yasl_surface_input_poll(surface, &event)) - if (event.kind == YASL_INPUT_MOUSE) return event.mouse; + struct yasl_event event; + while (yasl_surface_poll_event(surface, &event)) + return event; assert(!"Expected a pointer event"); - return (struct yasl_mouse_event){0}; + return (struct yasl_event){0}; } int main(void) @@ -54,8 +54,8 @@ int main(void) assert(surface); NSWindow *window = (NSWindow *)yasl_surface_get_native_handle(surface); NSView *view = window.contentView; - struct yasl_input_event event; - while (yasl_surface_input_poll(surface, &event)) {} + struct yasl_event event; + while (yasl_surface_poll_event(surface, &event)) {} TabletSample *sample = [TabletSample new]; NSEvent *native = (NSEvent *)sample; sample.type = NSEventTypeTabletProximity; @@ -67,16 +67,16 @@ int main(void) sample.locationInWindow = NSMakePoint(100, 120); sample.sampleTilt = NSMakePoint(-0.5, 0.5); [view mouseMoved:native]; - struct yasl_mouse_event ev = next(surface); - assert(ev.device == YASL_PTR_DEV_PEN && ev.kind == YASL_PTR_MOTION && !ev.pen.pressure); - assert(ev.pen.tilt_x == -45 && ev.pen.tilt_y == -45); + struct yasl_event ev = next(surface); + assert(ev.pointer.device == YASL_PTR_DEV_PEN && ev.type == YASL_EVENT_POINTER_MOTION && !ev.pointer.pen.pressure); + assert(ev.pointer.pen.tilt_x == -45 && ev.pointer.pen.tilt_y == -45); sample.type = NSEventTypeLeftMouseDown; sample.samplePressure = 0.5; [view mouseDown:native]; ev = next(surface); - assert(ev.device == YASL_PTR_DEV_PEN && ev.kind == YASL_PTR_PRESS && ev.button == 0); - assert(ev.pen.pressure == 32767); - struct yasl_vector2i position = ev.pos; + assert(ev.pointer.device == YASL_PTR_DEV_PEN && ev.type == YASL_EVENT_POINTER_DOWN && ev.pointer.button == YASL_BUTTON_PRIMARY); + assert(ev.pointer.pen.pressure == 32767); + struct yasl_vector2i position = ev.pointer.pos; /* Native tablet events cover stationary pressure changes. */ sample.type = NSEventTypeTabletPoint; sample.subtype = NSEventSubtypeMouseEvent; @@ -84,19 +84,19 @@ int main(void) sample.samplePressure = 1.5; [view tabletPoint:native]; ev = next(surface); - assert(ev.kind == YASL_PTR_MOTION && ev.pen.pressure == 65535); - assert(ev.pos.x == position.x && ev.pos.y == position.y); + assert(ev.type == YASL_EVENT_POINTER_MOTION && ev.pointer.pen.pressure == 65535); + assert(ev.pointer.pos.x == position.x && ev.pointer.pos.y == position.y); sample.samplePressure = 0; /* Zero does not release a held tip button. */ [view tabletPoint:native]; - assert(next(surface).kind == YASL_PTR_MOTION); + assert(next(surface).type == YASL_EVENT_POINTER_MOTION); sample.buttonMask = 0; [view tabletPoint:native]; ev = next(surface); - assert(ev.kind == YASL_PTR_RELEASE && !ev.pen.pressure && ev.device == YASL_PTR_DEV_PEN); + assert(ev.type == YASL_EVENT_POINTER_UP && !ev.pointer.pen.pressure && ev.pointer.device == YASL_PTR_DEV_PEN); sample.type = NSEventTypeTabletProximity; sample.enteringProximity = NO; [view tabletProximity:native]; - assert(next(surface).kind == YASL_PTR_LEAVE); + assert(next(surface).type == YASL_EVENT_POINTER_LEAVE); sample.enteringProximity = YES; sample.tool = NSPointingDeviceTypeEraser; [view tabletProximity:native]; @@ -105,16 +105,16 @@ int main(void) sample.buttonMask = NSEventButtonMaskPenTip; [view tabletPoint:native]; ev = next(surface); - assert(ev.device == YASL_PTR_DEV_ERASER && ev.kind == YASL_PTR_PRESS && ev.pen.pressure > 0); + assert(ev.pointer.device == YASL_PTR_DEV_ERASER && ev.type == YASL_EVENT_POINTER_DOWN && ev.pointer.pen.pressure > 0); sample.type = NSEventTypeTabletProximity; sample.enteringProximity = NO; [view tabletProximity:native]; ev = next(surface); - assert(ev.device == YASL_PTR_DEV_ERASER && ev.kind == YASL_PTR_LEAVE && !ev.pen.pressure); + assert(ev.pointer.device == YASL_PTR_DEV_ERASER && ev.type == YASL_EVENT_POINTER_LEAVE && !ev.pointer.pen.pressure); sample.type = NSEventTypeMouseMoved; [view mouseMoved:native]; ev = next(surface); - assert(ev.device == YASL_PTR_DEV_MOUSE && !ev.pen.pressure); + assert(ev.pointer.device == YASL_PTR_DEV_MOUSE && !ev.pointer.pen.pressure); [sample release]; yasl_surface_destroy(surface); yasl_display_close(display); |
