SDL 2.0
testautomation_mouse.c
Go to the documentation of this file.
1/**
2 * Mouse test suite
3 */
4
5#include <stdio.h>
6#include <limits.h>
7
8#include "SDL.h"
9#include "SDL_test.h"
10
11/* ================= Test Case Implementation ================== */
12
13/* Test case functions */
14
15/* Helper to evaluate state returned from SDL_GetMouseState */
17{
18 return (state == 0) ||
24}
25
26/**
27 * @brief Check call to SDL_GetMouseState
28 *
29 */
30int
32{
33 int x;
34 int y;
36
37 /* Pump some events to update mouse state */
39 SDLTest_AssertPass("Call to SDL_PumpEvents()");
40
41 /* Case where x, y pointer is NULL */
43 SDLTest_AssertPass("Call to SDL_GetMouseState(NULL, NULL)");
44 SDLTest_AssertCheck(_mouseStateCheck(state), "Validate state returned from function, got: %i", state);
45
46 /* Case where x pointer is not NULL */
47 x = INT_MIN;
49 SDLTest_AssertPass("Call to SDL_GetMouseState(&x, NULL)");
50 SDLTest_AssertCheck(x > INT_MIN, "Validate that value of x is > INT_MIN, got: %i", x);
51 SDLTest_AssertCheck(_mouseStateCheck(state), "Validate state returned from function, got: %i", state);
52
53 /* Case where y pointer is not NULL */
54 y = INT_MIN;
56 SDLTest_AssertPass("Call to SDL_GetMouseState(NULL, &y)");
57 SDLTest_AssertCheck(y > INT_MIN, "Validate that value of y is > INT_MIN, got: %i", y);
58 SDLTest_AssertCheck(_mouseStateCheck(state), "Validate state returned from function, got: %i", state);
59
60 /* Case where x and y pointer is not NULL */
61 x = INT_MIN;
62 y = INT_MIN;
64 SDLTest_AssertPass("Call to SDL_GetMouseState(&x, &y)");
65 SDLTest_AssertCheck(x > INT_MIN, "Validate that value of x is > INT_MIN, got: %i", x);
66 SDLTest_AssertCheck(y > INT_MIN, "Validate that value of y is > INT_MIN, got: %i", y);
67 SDLTest_AssertCheck(_mouseStateCheck(state), "Validate state returned from function, got: %i", state);
68
69 return TEST_COMPLETED;
70}
71
72/**
73 * @brief Check call to SDL_GetRelativeMouseState
74 *
75 */
76int
78{
79 int x;
80 int y;
82
83 /* Pump some events to update mouse state */
85 SDLTest_AssertPass("Call to SDL_PumpEvents()");
86
87 /* Case where x, y pointer is NULL */
89 SDLTest_AssertPass("Call to SDL_GetRelativeMouseState(NULL, NULL)");
90 SDLTest_AssertCheck(_mouseStateCheck(state), "Validate state returned from function, got: %i", state);
91
92 /* Case where x pointer is not NULL */
93 x = INT_MIN;
95 SDLTest_AssertPass("Call to SDL_GetRelativeMouseState(&x, NULL)");
96 SDLTest_AssertCheck(x > INT_MIN, "Validate that value of x is > INT_MIN, got: %i", x);
97 SDLTest_AssertCheck(_mouseStateCheck(state), "Validate state returned from function, got: %i", state);
98
99 /* Case where y pointer is not NULL */
100 y = INT_MIN;
102 SDLTest_AssertPass("Call to SDL_GetRelativeMouseState(NULL, &y)");
103 SDLTest_AssertCheck(y > INT_MIN, "Validate that value of y is > INT_MIN, got: %i", y);
104 SDLTest_AssertCheck(_mouseStateCheck(state), "Validate state returned from function, got: %i", state);
105
106 /* Case where x and y pointer is not NULL */
107 x = INT_MIN;
108 y = INT_MIN;
110 SDLTest_AssertPass("Call to SDL_GetRelativeMouseState(&x, &y)");
111 SDLTest_AssertCheck(x > INT_MIN, "Validate that value of x is > INT_MIN, got: %i", x);
112 SDLTest_AssertCheck(y > INT_MIN, "Validate that value of y is > INT_MIN, got: %i", y);
113 SDLTest_AssertCheck(_mouseStateCheck(state), "Validate state returned from function, got: %i", state);
114
115 return TEST_COMPLETED;
116}
117
118
119/* XPM definition of mouse Cursor */
120static const char *_mouseArrowData[] = {
121 /* pixels */
122 "X ",
123 "XX ",
124 "X.X ",
125 "X..X ",
126 "X...X ",
127 "X....X ",
128 "X.....X ",
129 "X......X ",
130 "X.......X ",
131 "X........X ",
132 "X.....XXXXX ",
133 "X..X..X ",
134 "X.X X..X ",
135 "XX X..X ",
136 "X X..X ",
137 " X..X ",
138 " X..X ",
139 " X..X ",
140 " XX ",
141 " ",
142 " ",
143 " ",
144 " ",
145 " ",
146 " ",
147 " ",
148 " ",
149 " ",
150 " ",
151 " ",
152 " ",
153 " "
154};
155
156/* Helper that creates a new mouse cursor from an XPM */
157static SDL_Cursor *_initArrowCursor(const char *image[])
158{
160 int i, row, col;
161 Uint8 data[4*32];
162 Uint8 mask[4*32];
163
164 i = -1;
165 for ( row=0; row<32; ++row ) {
166 for ( col=0; col<32; ++col ) {
167 if ( col % 8 ) {
168 data[i] <<= 1;
169 mask[i] <<= 1;
170 } else {
171 ++i;
172 data[i] = mask[i] = 0;
173 }
174 switch (image[row][col]) {
175 case 'X':
176 data[i] |= 0x01;
177 mask[i] |= 0x01;
178 break;
179 case '.':
180 mask[i] |= 0x01;
181 break;
182 case ' ':
183 break;
184 }
185 }
186 }
187
188 cursor = SDL_CreateCursor(data, mask, 32, 32, 0, 0);
189 return cursor;
190}
191
192/**
193 * @brief Check call to SDL_CreateCursor and SDL_FreeCursor
194 *
195 * @sa http://wiki.libsdl.org/moin.cgi/SDL_CreateCursor
196 * @sa http://wiki.libsdl.org/moin.cgi/SDL_FreeCursor
197 */
198int
200{
202
203 /* Create a cursor */
205 SDLTest_AssertPass("Call to SDL_CreateCursor()");
206 SDLTest_AssertCheck(cursor != NULL, "Validate result from SDL_CreateCursor() is not NULL");
207 if (cursor == NULL) {
208 return TEST_ABORTED;
209 }
210
211 /* Free cursor again */
213 SDLTest_AssertPass("Call to SDL_FreeCursor()");
214
215 return TEST_COMPLETED;
216}
217
218/**
219 * @brief Check call to SDL_CreateColorCursor and SDL_FreeCursor
220 *
221 * @sa http://wiki.libsdl.org/moin.cgi/SDL_CreateColorCursor
222 * @sa http://wiki.libsdl.org/moin.cgi/SDL_FreeCursor
223 */
224int
226{
229
230 /* Get sample surface */
232 SDLTest_AssertCheck(face != NULL, "Validate sample input image is not NULL");
233 if (face == NULL) return TEST_ABORTED;
234
235 /* Create a color cursor from surface */
237 SDLTest_AssertPass("Call to SDL_CreateColorCursor()");
238 SDLTest_AssertCheck(cursor != NULL, "Validate result from SDL_CreateColorCursor() is not NULL");
239 if (cursor == NULL) {
241 return TEST_ABORTED;
242 }
243
244 /* Free cursor again */
246 SDLTest_AssertPass("Call to SDL_FreeCursor()");
247
248 /* Clean up */
250
251 return TEST_COMPLETED;
252}
253
254/* Helper that changes cursor visibility */
256{
257 int oldState;
258 int newState;
259 int result;
260
261 oldState = SDL_ShowCursor(SDL_QUERY);
262 SDLTest_AssertPass("Call to SDL_ShowCursor(SDL_QUERY)");
263
265 SDLTest_AssertPass("Call to SDL_ShowCursor(%s)", (state == SDL_ENABLE) ? "SDL_ENABLE" : "SDL_DISABLE");
266 SDLTest_AssertCheck(result == oldState, "Validate result from SDL_ShowCursor(%s), expected: %i, got: %i",
267 (state == SDL_ENABLE) ? "SDL_ENABLE" : "SDL_DISABLE", oldState, result);
268
269 newState = SDL_ShowCursor(SDL_QUERY);
270 SDLTest_AssertPass("Call to SDL_ShowCursor(SDL_QUERY)");
271 SDLTest_AssertCheck(state == newState, "Validate new state, expected: %i, got: %i",
272 state, newState);
273}
274
275/**
276 * @brief Check call to SDL_ShowCursor
277 *
278 * @sa http://wiki.libsdl.org/moin.cgi/SDL_ShowCursor
279 */
280int
282{
283 int currentState;
284
285 /* Get current state */
286 currentState = SDL_ShowCursor(SDL_QUERY);
287 SDLTest_AssertPass("Call to SDL_ShowCursor(SDL_QUERY)");
288 SDLTest_AssertCheck(currentState == SDL_DISABLE || currentState == SDL_ENABLE,
289 "Validate result is %i or %i, got: %i", SDL_DISABLE, SDL_ENABLE, currentState);
290 if (currentState == SDL_DISABLE) {
291 /* Show the cursor, then hide it again */
294 } else if (currentState == SDL_ENABLE) {
295 /* Hide the cursor, then show it again */
298 } else {
299 return TEST_ABORTED;
300 }
301
302 return TEST_COMPLETED;
303}
304
305/**
306 * @brief Check call to SDL_SetCursor
307 *
308 * @sa http://wiki.libsdl.org/moin.cgi/SDL_SetCursor
309 */
310int
312{
314
315 /* Create a cursor */
317 SDLTest_AssertPass("Call to SDL_CreateCursor()");
318 SDLTest_AssertCheck(cursor != NULL, "Validate result from SDL_CreateCursor() is not NULL");
319 if (cursor == NULL) {
320 return TEST_ABORTED;
321 }
322
323 /* Set the arrow cursor */
325 SDLTest_AssertPass("Call to SDL_SetCursor(cursor)");
326
327 /* Force redraw */
329 SDLTest_AssertPass("Call to SDL_SetCursor(NULL)");
330
331 /* Free cursor again */
333 SDLTest_AssertPass("Call to SDL_FreeCursor()");
334
335 return TEST_COMPLETED;
336}
337
338/**
339 * @brief Check call to SDL_GetCursor
340 *
341 * @sa http://wiki.libsdl.org/moin.cgi/SDL_GetCursor
342 */
343int
345{
347
348 /* Get current cursor */
350 SDLTest_AssertPass("Call to SDL_GetCursor()");
351 SDLTest_AssertCheck(cursor != NULL, "Validate result from SDL_GetCursor() is not NULL");
352
353 return TEST_COMPLETED;
354}
355
356/**
357 * @brief Check call to SDL_GetRelativeMouseMode and SDL_SetRelativeMouseMode
358 *
359 * @sa http://wiki.libsdl.org/moin.cgi/SDL_GetRelativeMouseMode
360 * @sa http://wiki.libsdl.org/moin.cgi/SDL_SetRelativeMouseMode
361 */
362int
364{
365 int result;
366 int i;
367 SDL_bool initialState;
368 SDL_bool currentState;
369
370 /* Capture original state so we can revert back to it later */
371 initialState = SDL_GetRelativeMouseMode();
372 SDLTest_AssertPass("Call to SDL_GetRelativeMouseMode()");
373
374 /* Repeat twice to check D->D transition */
375 for (i=0; i<2; i++) {
376 /* Disable - should always be supported */
378 SDLTest_AssertPass("Call to SDL_SetRelativeMouseMode(FALSE)");
379 SDLTest_AssertCheck(result == 0, "Validate result value from SDL_SetRelativeMouseMode, expected: 0, got: %i", result);
380 currentState = SDL_GetRelativeMouseMode();
381 SDLTest_AssertPass("Call to SDL_GetRelativeMouseMode()");
382 SDLTest_AssertCheck(currentState == SDL_FALSE, "Validate current state is FALSE, got: %i", currentState);
383 }
384
385 /* Repeat twice to check D->E->E transition */
386 for (i=0; i<2; i++) {
387 /* Enable - may not be supported */
389 SDLTest_AssertPass("Call to SDL_SetRelativeMouseMode(TRUE)");
390 if (result != -1) {
391 SDLTest_AssertCheck(result == 0, "Validate result value from SDL_SetRelativeMouseMode, expected: 0, got: %i", result);
392 currentState = SDL_GetRelativeMouseMode();
393 SDLTest_AssertPass("Call to SDL_GetRelativeMouseMode()");
394 SDLTest_AssertCheck(currentState == SDL_TRUE, "Validate current state is TRUE, got: %i", currentState);
395 }
396 }
397
398 /* Disable to check E->D transition */
400 SDLTest_AssertPass("Call to SDL_SetRelativeMouseMode(FALSE)");
401 SDLTest_AssertCheck(result == 0, "Validate result value from SDL_SetRelativeMouseMode, expected: 0, got: %i", result);
402 currentState = SDL_GetRelativeMouseMode();
403 SDLTest_AssertPass("Call to SDL_GetRelativeMouseMode()");
404 SDLTest_AssertCheck(currentState == SDL_FALSE, "Validate current state is FALSE, got: %i", currentState);
405
406 /* Revert to original state - ignore result */
407 result = SDL_SetRelativeMouseMode(initialState);
408
409 return TEST_COMPLETED;
410}
411
412#define MOUSE_TESTWINDOW_WIDTH 320
413#define MOUSE_TESTWINDOW_HEIGHT 200
414
415/**
416 * Creates a test window
417 */
419{
420 int posX = 100, posY = 100, width = MOUSE_TESTWINDOW_WIDTH, height = MOUSE_TESTWINDOW_HEIGHT;
422 window = SDL_CreateWindow("mouse_createMouseSuiteTestWindow", posX, posY, width, height, 0);
423 SDLTest_AssertPass("SDL_CreateWindow()");
424 SDLTest_AssertCheck(window != NULL, "Check SDL_CreateWindow result");
425 return window;
426}
427
428/*
429 * Destroy test window
430 */
432{
433 if (window != NULL) {
435 window = NULL;
436 SDLTest_AssertPass("SDL_DestroyWindow()");
437 }
438}
439
440/**
441 * @brief Check call to SDL_WarpMouseInWindow
442 *
443 * @sa http://wiki.libsdl.org/moin.cgi/SDL_WarpMouseInWindow
444 */
445int
447{
449 int numPositions = 6;
450 int xPositions[6];
451 int yPositions[6];
452 int x, y, i, j;
454
455 xPositions[0] = -1;
456 xPositions[1] = 0;
457 xPositions[2] = 1;
458 xPositions[3] = w-1;
459 xPositions[4] = w;
460 xPositions[5] = w+1;
461 yPositions[0] = -1;
462 yPositions[1] = 0;
463 yPositions[2] = 1;
464 yPositions[3] = h-1;
465 yPositions[4] = h;
466 yPositions[5] = h+1;
467 /* Create test window */
469 if (window == NULL) return TEST_ABORTED;
470
471 /* Mouse to random position inside window */
475 SDLTest_AssertPass("SDL_WarpMouseInWindow(...,%i,%i)", x, y);
476
477 /* Same position again */
479 SDLTest_AssertPass("SDL_WarpMouseInWindow(...,%i,%i)", x, y);
480
481 /* Mouse to various boundary positions */
482 for (i=0; i<numPositions; i++) {
483 for (j=0; j<numPositions; j++) {
484 x = xPositions[i];
485 y = yPositions[j];
487 SDLTest_AssertPass("SDL_WarpMouseInWindow(...,%i,%i)", x, y);
488
489 /* TODO: add tracking of events and check that each call generates a mouse motion event */
491 SDLTest_AssertPass("SDL_PumpEvents()");
492 }
493 }
494
495
496 /* Clean up test window */
498
499 return TEST_COMPLETED;
500}
501
502/**
503 * @brief Check call to SDL_GetMouseFocus
504 *
505 * @sa http://wiki.libsdl.org/moin.cgi/SDL_GetMouseFocus
506 */
507int
509{
511 int x, y;
513 SDL_Window *focusWindow;
514
515 /* Get focus - focus non-deterministic */
516 focusWindow = SDL_GetMouseFocus();
517 SDLTest_AssertPass("SDL_GetMouseFocus()");
518
519 /* Create test window */
521 if (window == NULL) return TEST_ABORTED;
522
523 /* Mouse to random position inside window */
527 SDLTest_AssertPass("SDL_WarpMouseInWindow(...,%i,%i)", x, y);
528
529 /* Pump events to update focus state */
531 SDLTest_AssertPass("SDL_PumpEvents()");
532
533 /* Get focus with explicit window setup - focus deterministic */
534 focusWindow = SDL_GetMouseFocus();
535 SDLTest_AssertPass("SDL_GetMouseFocus()");
536 SDLTest_AssertCheck (focusWindow != NULL, "Check returned window value is not NULL");
537 SDLTest_AssertCheck (focusWindow == window, "Check returned window value is test window");
538
539 /* Mouse to random position outside window */
543 SDLTest_AssertPass("SDL_WarpMouseInWindow(...,%i,%i)", x, y);
544
545 /* Clean up test window */
547
548 /* Pump events to update focus state */
550 SDLTest_AssertPass("SDL_PumpEvents()");
551
552 /* Get focus for non-existing window */
553 focusWindow = SDL_GetMouseFocus();
554 SDLTest_AssertPass("SDL_GetMouseFocus()");
555 SDLTest_AssertCheck (focusWindow == NULL, "Check returned window value is NULL");
556
557
558 return TEST_COMPLETED;
559}
560
561/* ================= Test References ================== */
562
563/* Mouse test cases */
565 { (SDLTest_TestCaseFp)mouse_getMouseState, "mouse_getMouseState", "Check call to SDL_GetMouseState", TEST_ENABLED };
566
568 { (SDLTest_TestCaseFp)mouse_getRelativeMouseState, "mouse_getRelativeMouseState", "Check call to SDL_GetRelativeMouseState", TEST_ENABLED };
569
571 { (SDLTest_TestCaseFp)mouse_createFreeCursor, "mouse_createFreeCursor", "Check call to SDL_CreateCursor and SDL_FreeCursor", TEST_ENABLED };
572
574 { (SDLTest_TestCaseFp)mouse_showCursor, "mouse_showCursor", "Check call to SDL_ShowCursor", TEST_ENABLED };
575
577 { (SDLTest_TestCaseFp)mouse_setCursor, "mouse_setCursor", "Check call to SDL_SetCursor", TEST_ENABLED };
578
580 { (SDLTest_TestCaseFp)mouse_getCursor, "mouse_getCursor", "Check call to SDL_GetCursor", TEST_ENABLED };
581
583 { (SDLTest_TestCaseFp)mouse_warpMouseInWindow, "mouse_warpMouseInWindow", "Check call to SDL_WarpMouseInWindow", TEST_ENABLED };
584
586 { (SDLTest_TestCaseFp)mouse_getMouseFocus, "mouse_getMouseFocus", "Check call to SDL_getMouseFocus", TEST_ENABLED };
587
589 { (SDLTest_TestCaseFp)mouse_createFreeColorCursor, "mouse_createFreeColorCursor", "Check call to SDL_CreateColorCursor and SDL_FreeCursor", TEST_ENABLED };
590
592 { (SDLTest_TestCaseFp)mouse_getSetRelativeMouseMode, "mouse_getSetRelativeMouseMode", "Check call to SDL_GetRelativeMouseMode and SDL_SetRelativeMouseMode", TEST_ENABLED };
593
594/* Sequence of Mouse test cases */
598};
599
600/* Mouse test suite (global) */
602 "Mouse",
603 NULL,
605 NULL
606};
#define SDL_GetCursor
#define SDL_CreateCursor
#define SDL_DestroyWindow
#define SDL_PumpEvents
#define SDL_GetMouseState
#define SDL_ShowCursor
#define SDL_CreateWindow
#define SDL_WarpMouseInWindow
#define SDL_SetRelativeMouseMode
#define SDL_GetRelativeMouseState
#define SDL_CreateColorCursor
#define SDL_SetCursor
#define SDL_FreeCursor
#define SDL_GetMouseFocus
#define SDL_FreeSurface
#define SDL_GetRelativeMouseMode
#define SDL_QUERY
Definition: SDL_events.h:756
#define SDL_DISABLE
Definition: SDL_events.h:758
#define SDL_ENABLE
Definition: SDL_events.h:759
#define SDL_BUTTON_X1
Definition: SDL_mouse.h:285
#define SDL_BUTTON_X2
Definition: SDL_mouse.h:286
#define SDL_BUTTON_MIDDLE
Definition: SDL_mouse.h:283
#define SDL_BUTTON_RIGHT
Definition: SDL_mouse.h:284
#define SDL_BUTTON_LEFT
Definition: SDL_mouse.h:282
#define SDL_BUTTON(X)
Definition: SDL_mouse.h:281
GLeglImageOES image
Definition: SDL_opengl.h:2148
GLint GLint GLint GLint GLint GLint y
Definition: SDL_opengl.h:1574
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: SDL_opengl.h:1974
GLint GLint GLsizei width
Definition: SDL_opengl.h:1572
GLint GLint GLint GLint GLint x
Definition: SDL_opengl.h:1574
GLint GLint GLsizei GLsizei height
Definition: SDL_opengl.h:1572
GLuint64EXT * result
GLenum GLenum void * row
GLenum GLuint GLint GLenum face
GLenum GLint GLuint mask
GLfloat GLfloat GLfloat GLfloat h
GLubyte GLubyte GLubyte GLubyte w
SDL_bool
Definition: SDL_stdinc.h:162
@ SDL_TRUE
Definition: SDL_stdinc.h:164
@ SDL_FALSE
Definition: SDL_stdinc.h:163
uint32_t Uint32
Definition: SDL_stdinc.h:203
uint8_t Uint8
Definition: SDL_stdinc.h:179
void SDLTest_AssertPass(SDL_PRINTF_FORMAT_STRING const char *assertDescription,...) SDL_PRINTF_VARARG_FUNC(1)
Explicitly pass without checking an assertion condition. Updates assertion counter.
int SDLTest_AssertCheck(int assertCondition, SDL_PRINTF_FORMAT_STRING const char *assertDescription,...) SDL_PRINTF_VARARG_FUNC(2)
Assert for test cases that logs but does not break execution flow on failures. Updates assertion coun...
Sint32 SDLTest_RandomIntegerInRange(Sint32 min, Sint32 max)
#define TEST_ENABLED
#define TEST_COMPLETED
#define TEST_ABORTED
int(* SDLTest_TestCaseFp)(void *arg)
SDL_Surface * SDLTest_ImageFace(void)
Returns the Face test image as SDL_Surface.
struct xkb_state * state
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int in j)
Definition: SDL_x11sym.h:50
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int in i)
Definition: SDL_x11sym.h:50
#define NULL
Definition: begin_code.h:167
EGLSurface EGLNativeWindowType * window
Definition: eglext.h:1025
A collection of pixels used in software blitting.
Definition: SDL_surface.h:71
The type used to identify a window.
Definition: SDL_sysvideo.h:74
static const SDLTest_TestCaseReference mouseTest4
static const char * _mouseArrowData[]
int mouse_getMouseState(void *arg)
Check call to SDL_GetMouseState.
int _mouseStateCheck(Uint32 state)
int mouse_showCursor(void *arg)
Check call to SDL_ShowCursor.
static const SDLTest_TestCaseReference mouseTest8
int mouse_getCursor(void *arg)
Check call to SDL_GetCursor.
static const SDLTest_TestCaseReference * mouseTests[]
int mouse_getSetRelativeMouseMode(void *arg)
Check call to SDL_GetRelativeMouseMode and SDL_SetRelativeMouseMode.
int mouse_getMouseFocus(void *arg)
Check call to SDL_GetMouseFocus.
static const SDLTest_TestCaseReference mouseTest1
int mouse_getRelativeMouseState(void *arg)
Check call to SDL_GetRelativeMouseState.
int mouse_setCursor(void *arg)
Check call to SDL_SetCursor.
static const SDLTest_TestCaseReference mouseTest6
static const SDLTest_TestCaseReference mouseTest7
SDL_Window * _createMouseSuiteTestWindow()
#define MOUSE_TESTWINDOW_HEIGHT
static const SDLTest_TestCaseReference mouseTest5
SDLTest_TestSuiteReference mouseTestSuite
static const SDLTest_TestCaseReference mouseTest9
void _changeCursorVisibility(int state)
#define MOUSE_TESTWINDOW_WIDTH
static const SDLTest_TestCaseReference mouseTest2
static SDL_Cursor * _initArrowCursor(const char *image[])
void _destroyMouseSuiteTestWindow(SDL_Window *window)
int mouse_createFreeColorCursor(void *arg)
Check call to SDL_CreateColorCursor and SDL_FreeCursor.
static const SDLTest_TestCaseReference mouseTest3
int mouse_createFreeCursor(void *arg)
Check call to SDL_CreateCursor and SDL_FreeCursor.
static const SDLTest_TestCaseReference mouseTest10
int mouse_warpMouseInWindow(void *arg)
Check call to SDL_WarpMouseInWindow.
SDL_Cursor * cursor
Definition: testwm2.c:40