| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- MODULE test_window ;
- (*
- m2SDL smoke test: hidden window create -> title round-trip ->
- size query -> destroy. Uses a hidden window so it also passes
- headless (SDL_VIDEODRIVER=dummy).
- *)
- FROM SYSTEM IMPORT ADDRESS;
- FROM SDL2 IMPORT SDL_Init, SDL_Quit, SDLInitVideo;
- FROM SDLVideo IMPORT SDL_CreateWindow, SDL_DestroyWindow,
- SDL_GetWindowTitle, SDL_SetWindowTitle, SDL_GetWindowSize,
- WindowHidden, WindowPosUndefined;
- FROM SDLEvents IMPORT SDL_PumpEvents;
- FROM SDLUtils IMPORT CStrToM2;
- FROM StrLib IMPORT StrEqual;
- FROM libc IMPORT printf;
- VAR
- win: ADDRESS;
- title: ADDRESS;
- titleBuf: ARRAY [0..63] OF CHAR;
- w, h: INTEGER;
- rc: INTEGER;
- BEGIN
- rc := SDL_Init(SDLInitVideo);
- IF rc # 0 THEN
- printf("FAIL test_window: SDL_Init video -> %d\n", rc);
- HALT(1)
- END;
- win := SDL_CreateWindow("m2sdl-test",
- WindowPosUndefined, WindowPosUndefined,
- 320, 240, WindowHidden);
- IF win = NIL THEN
- printf("FAIL test_window: CreateWindow returned NIL\n");
- SDL_Quit;
- HALT(1)
- END;
- SDL_SetWindowTitle(win, "m2sdl-retitled");
- title := SDL_GetWindowTitle(win);
- CStrToM2(title, titleBuf);
- IF NOT StrEqual(titleBuf, "m2sdl-retitled") THEN
- printf("FAIL test_window: title round-trip mismatch\n");
- SDL_DestroyWindow(win);
- SDL_Quit;
- HALT(1)
- END;
- SDL_GetWindowSize(win, w, h);
- IF (w # 320) OR (h # 240) THEN
- printf("FAIL test_window: size %dx%d, expected 320x240\n", w, h);
- SDL_DestroyWindow(win);
- SDL_Quit;
- HALT(1)
- END;
- SDL_PumpEvents;
- SDL_DestroyWindow(win);
- SDL_Quit;
- printf("PASS test_window\n")
- END test_window.
|