test_clipboard.mod 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. MODULE test_clipboard ;
  2. (*
  3. m2SDL3 smoke test: clipboard text round-trip under the dummy
  4. video driver. Set text, check HasClipboardText, read back and
  5. compare. SDL-allocated readback is released with SDL_free.
  6. *)
  7. FROM SYSTEM IMPORT ADDRESS;
  8. FROM SDL3 IMPORT SDL_Init, SDL_Quit, SDLInitVideo;
  9. FROM SDL3Clipboard IMPORT SDL_SetClipboardText, SDL_GetClipboardText,
  10. SDL_HasClipboardText;
  11. FROM SDL3Stdinc IMPORT SDL_free;
  12. FROM SDL3Utils IMPORT CStrToM2;
  13. FROM StrLib IMPORT StrEqual;
  14. FROM libc IMPORT printf;
  15. VAR
  16. p: ADDRESS;
  17. buf: ARRAY [0..127] OF CHAR;
  18. PROCEDURE Fail (msg: ARRAY OF CHAR);
  19. BEGIN
  20. printf("FAIL test_clipboard: %s\n", msg);
  21. HALT(1)
  22. END Fail;
  23. BEGIN
  24. IF NOT SDL_Init(SDLInitVideo) THEN
  25. printf("FAIL test_clipboard: SDL_Init video failed\n");
  26. HALT(1)
  27. END;
  28. IF NOT SDL_SetClipboardText("m2sdl3-clipboard-probe") THEN
  29. Fail("set failed")
  30. END;
  31. IF NOT SDL_HasClipboardText() THEN Fail("has-clipboard false") END;
  32. p := SDL_GetClipboardText();
  33. IF p = NIL THEN Fail("get returned NIL") END;
  34. CStrToM2(p, buf);
  35. SDL_free(p);
  36. printf("clipboard: %s\n", buf);
  37. IF NOT StrEqual(buf, "m2sdl3-clipboard-probe") THEN
  38. Fail("round-trip mismatch")
  39. END;
  40. SDL_Quit;
  41. printf("PASS test_clipboard\n")
  42. END test_clipboard.