test_window.mod 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. MODULE test_window ;
  2. (*
  3. m2SDL smoke test: hidden window create -> title round-trip ->
  4. size query -> destroy. Uses a hidden window so it also passes
  5. headless (SDL_VIDEODRIVER=dummy).
  6. *)
  7. FROM SYSTEM IMPORT ADDRESS;
  8. FROM SDL2 IMPORT SDL_Init, SDL_Quit, SDLInitVideo;
  9. FROM SDLVideo IMPORT SDL_CreateWindow, SDL_DestroyWindow,
  10. SDL_GetWindowTitle, SDL_SetWindowTitle, SDL_GetWindowSize,
  11. WindowHidden, WindowPosUndefined;
  12. FROM SDLEvents IMPORT SDL_PumpEvents;
  13. FROM SDLUtils IMPORT CStrToM2;
  14. FROM StrLib IMPORT StrEqual;
  15. FROM libc IMPORT printf;
  16. VAR
  17. win: ADDRESS;
  18. title: ADDRESS;
  19. titleBuf: ARRAY [0..63] OF CHAR;
  20. w, h: INTEGER;
  21. rc: INTEGER;
  22. BEGIN
  23. rc := SDL_Init(SDLInitVideo);
  24. IF rc # 0 THEN
  25. printf("FAIL test_window: SDL_Init video -> %d\n", rc);
  26. HALT(1)
  27. END;
  28. win := SDL_CreateWindow("m2sdl-test",
  29. WindowPosUndefined, WindowPosUndefined,
  30. 320, 240, WindowHidden);
  31. IF win = NIL THEN
  32. printf("FAIL test_window: CreateWindow returned NIL\n");
  33. SDL_Quit;
  34. HALT(1)
  35. END;
  36. SDL_SetWindowTitle(win, "m2sdl-retitled");
  37. title := SDL_GetWindowTitle(win);
  38. CStrToM2(title, titleBuf);
  39. IF NOT StrEqual(titleBuf, "m2sdl-retitled") THEN
  40. printf("FAIL test_window: title round-trip mismatch\n");
  41. SDL_DestroyWindow(win);
  42. SDL_Quit;
  43. HALT(1)
  44. END;
  45. SDL_GetWindowSize(win, w, h);
  46. IF (w # 320) OR (h # 240) THEN
  47. printf("FAIL test_window: size %dx%d, expected 320x240\n", w, h);
  48. SDL_DestroyWindow(win);
  49. SDL_Quit;
  50. HALT(1)
  51. END;
  52. SDL_PumpEvents;
  53. SDL_DestroyWindow(win);
  54. SDL_Quit;
  55. printf("PASS test_window\n")
  56. END test_window.