| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- MODULE test_window ;
- (*
- m2SDL3 smoke test: hidden window create -> title round-trip ->
- size query -> destroy. Uses a hidden window so it also passes
- headless (SDL_VIDEODRIVER=dummy).
- SDL3: CreateWindow has no x/y; most calls return BOOLEAN.
- *)
- FROM SYSTEM IMPORT ADDRESS;
- FROM SDL3 IMPORT SDL_Init, SDL_Quit, SDLInitVideo;
- FROM SDL3Video IMPORT SDL_CreateWindow, SDL_DestroyWindow,
- SDL_GetWindowTitle, SDL_SetWindowTitle, SDL_GetWindowSize,
- WindowHidden;
- FROM SDL3Events IMPORT SDL_PumpEvents;
- FROM SDL3Utils IMPORT CStrToM2;
- FROM StrLib IMPORT StrEqual;
- FROM libc IMPORT printf;
- VAR
- win: ADDRESS;
- title: ADDRESS;
- titleBuf: ARRAY [0..63] OF CHAR;
- w, h: INTEGER;
- BEGIN
- IF NOT SDL_Init(SDLInitVideo) THEN
- printf("FAIL test_window: SDL_Init video failed\n");
- HALT(1)
- END;
- win := SDL_CreateWindow("m2sdl3-test", 320, 240,
- VAL(LONGCARD, WindowHidden));
- IF win = NIL THEN
- printf("FAIL test_window: CreateWindow returned NIL\n");
- SDL_Quit;
- HALT(1)
- END;
- IF NOT SDL_SetWindowTitle(win, "m2sdl3-retitled") THEN
- printf("FAIL test_window: SetWindowTitle failed\n");
- SDL_DestroyWindow(win);
- SDL_Quit;
- HALT(1)
- END;
- title := SDL_GetWindowTitle(win);
- CStrToM2(title, titleBuf);
- IF NOT StrEqual(titleBuf, "m2sdl3-retitled") THEN
- printf("FAIL test_window: title round-trip mismatch\n");
- SDL_DestroyWindow(win);
- SDL_Quit;
- HALT(1)
- END;
- IF NOT SDL_GetWindowSize(win, w, h) THEN
- printf("FAIL test_window: GetWindowSize failed\n");
- SDL_DestroyWindow(win);
- SDL_Quit;
- HALT(1)
- END;
- 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.
|