MODULE test_clipboard ; (* m2SDL3 smoke test: clipboard text round-trip under the dummy video driver. Set text, check HasClipboardText, read back and compare. SDL-allocated readback is released with SDL_free. *) FROM SYSTEM IMPORT ADDRESS; FROM SDL3 IMPORT SDL_Init, SDL_Quit, SDLInitVideo; FROM SDL3Clipboard IMPORT SDL_SetClipboardText, SDL_GetClipboardText, SDL_HasClipboardText; FROM SDL3Stdinc IMPORT SDL_free; FROM SDL3Utils IMPORT CStrToM2; FROM StrLib IMPORT StrEqual; FROM libc IMPORT printf; VAR p: ADDRESS; buf: ARRAY [0..127] OF CHAR; PROCEDURE Fail (msg: ARRAY OF CHAR); BEGIN printf("FAIL test_clipboard: %s\n", msg); HALT(1) END Fail; BEGIN IF NOT SDL_Init(SDLInitVideo) THEN printf("FAIL test_clipboard: SDL_Init video failed\n"); HALT(1) END; IF NOT SDL_SetClipboardText("m2sdl3-clipboard-probe") THEN Fail("set failed") END; IF NOT SDL_HasClipboardText() THEN Fail("has-clipboard false") END; p := SDL_GetClipboardText(); IF p = NIL THEN Fail("get returned NIL") END; CStrToM2(p, buf); SDL_free(p); printf("clipboard: %s\n", buf); IF NOT StrEqual(buf, "m2sdl3-clipboard-probe") THEN Fail("round-trip mismatch") END; SDL_Quit; printf("PASS test_clipboard\n") END test_clipboard.