SDL
2.0
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
testautomation_hints.c
Go to the documentation of this file.
1
/**
2
* Hints test suite
3
*/
4
5
#include <stdio.h>
6
7
#include "
SDL.h
"
8
#include "
SDL_test.h
"
9
10
11
const
int
_numHintsEnum
= 25;
12
char
*
_HintsEnum
[] =
13
{
14
SDL_HINT_ACCELEROMETER_AS_JOYSTICK
,
15
SDL_HINT_FRAMEBUFFER_ACCELERATION
,
16
SDL_HINT_GAMECONTROLLERCONFIG
,
17
SDL_HINT_GRAB_KEYBOARD
,
18
SDL_HINT_IDLE_TIMER_DISABLED
,
19
SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS
,
20
SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK
,
21
SDL_HINT_MOUSE_RELATIVE_MODE_WARP
,
22
SDL_HINT_ORIENTATIONS
,
23
SDL_HINT_RENDER_DIRECT3D_THREADSAFE
,
24
SDL_HINT_RENDER_DRIVER
,
25
SDL_HINT_RENDER_OPENGL_SHADERS
,
26
SDL_HINT_RENDER_SCALE_QUALITY
,
27
SDL_HINT_RENDER_VSYNC
,
28
SDL_HINT_TIMER_RESOLUTION
,
29
SDL_HINT_VIDEO_ALLOW_SCREENSAVER
,
30
SDL_HINT_VIDEO_HIGHDPI_DISABLED
,
31
SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES
,
32
SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS
,
33
SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT
,
34
SDL_HINT_VIDEO_WIN_D3DCOMPILER
,
35
SDL_HINT_VIDEO_X11_XINERAMA
,
36
SDL_HINT_VIDEO_X11_XRANDR
,
37
SDL_HINT_VIDEO_X11_XVIDMODE
,
38
SDL_HINT_XINPUT_ENABLED
,
39
};
40
char
*
_HintsVerbose
[] =
41
{
42
"SDL_HINT_ACCELEROMETER_AS_JOYSTICK"
,
43
"SDL_HINT_FRAMEBUFFER_ACCELERATION"
,
44
"SDL_HINT_GAMECONTROLLERCONFIG"
,
45
"SDL_HINT_GRAB_KEYBOARD"
,
46
"SDL_HINT_IDLE_TIMER_DISABLED"
,
47
"SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS"
,
48
"SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK"
,
49
"SDL_HINT_MOUSE_RELATIVE_MODE_WARP"
,
50
"SDL_HINT_ORIENTATIONS"
,
51
"SDL_HINT_RENDER_DIRECT3D_THREADSAFE"
,
52
"SDL_HINT_RENDER_DRIVER"
,
53
"SDL_HINT_RENDER_OPENGL_SHADERS"
,
54
"SDL_HINT_RENDER_SCALE_QUALITY"
,
55
"SDL_HINT_RENDER_VSYNC"
,
56
"SDL_HINT_TIMER_RESOLUTION"
,
57
"SDL_HINT_VIDEO_ALLOW_SCREENSAVER"
,
58
"SDL_HINT_VIDEO_HIGHDPI_DISABLED"
,
59
"SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES"
,
60
"SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS"
,
61
"SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT"
,
62
"SDL_HINT_VIDEO_WIN_D3DCOMPILER"
,
63
"SDL_HINT_VIDEO_X11_XINERAMA"
,
64
"SDL_HINT_VIDEO_X11_XRANDR"
,
65
"SDL_HINT_VIDEO_X11_XVIDMODE"
,
66
"SDL_HINT_XINPUT_ENABLED"
67
};
68
69
70
/* Test case functions */
71
72
/**
73
* @brief Call to SDL_GetHint
74
*/
75
int
76
hints_getHint
(
void
*arg)
77
{
78
char
*result1;
79
char
*result2;
80
int
i
;
81
82
for
(i=0; i<
_numHintsEnum
; i++) {
83
result1 = (
char
*)
SDL_GetHint
((
char
*)
_HintsEnum
[
i
]);
84
SDLTest_AssertPass
(
"Call to SDL_GetHint(%s) - using define definition"
, (
char
*)
_HintsEnum
[i]);
85
result2 = (
char
*)
SDL_GetHint
((
char
*)
_HintsVerbose
[
i
]);
86
SDLTest_AssertPass
(
"Call to SDL_GetHint(%s) - using string definition"
, (
char
*)
_HintsVerbose
[i]);
87
SDLTest_AssertCheck
(
88
(result1 ==
NULL
&& result2 ==
NULL
) || (
SDL_strcmp
(result1, result2) == 0),
89
"Verify returned values are equal; got: result1='%s' result2='%s"
,
90
(result1 ==
NULL
) ?
"null"
: result1,
91
(result2 ==
NULL
) ?
"null"
: result2);
92
}
93
94
return
TEST_COMPLETED
;
95
}
96
97
/**
98
* @brief Call to SDL_SetHint
99
*/
100
int
101
hints_setHint
(
void
*arg)
102
{
103
char
*originalValue;
104
char
*
value
;
105
char
*testValue;
106
SDL_bool
result
;
107
int
i
,
j
;
108
109
/* Create random values to set */
110
value =
SDLTest_RandomAsciiStringOfSize
(10);
111
112
for
(i=0; i<
_numHintsEnum
; i++) {
113
/* Capture current value */
114
originalValue = (
char
*)
SDL_GetHint
((
char
*)
_HintsEnum
[
i
]);
115
SDLTest_AssertPass
(
"Call to SDL_GetHint(%s)"
, (
char
*)
_HintsEnum
[i]);
116
117
/* Set value (twice) */
118
for
(j=1; j<=2; j++) {
119
result =
SDL_SetHint
((
char
*)
_HintsEnum
[i], value);
120
SDLTest_AssertPass
(
"Call to SDL_SetHint(%s, %s) (iteration %i)"
, (
char
*)
_HintsEnum
[i], value, j);
121
SDLTest_AssertCheck
(
122
result ==
SDL_TRUE
|| result ==
SDL_FALSE
,
123
"Verify valid result was returned, got: %i"
,
124
(
int
)result);
125
testValue = (
char
*)
SDL_GetHint
((
char
*)
_HintsEnum
[
i
]);
126
SDLTest_AssertPass
(
"Call to SDL_GetHint(%s) - using string definition"
, (
char
*)
_HintsVerbose
[i]);
127
SDLTest_AssertCheck
(
128
(
SDL_strcmp
(value, testValue) == 0),
129
"Verify returned value equals set value; got: testValue='%s' value='%s"
,
130
(testValue ==
NULL
) ?
"null"
: testValue,
131
value);
132
}
133
134
/* Reset original value */
135
result =
SDL_SetHint
((
char
*)
_HintsEnum
[i], originalValue);
136
SDLTest_AssertPass
(
"Call to SDL_SetHint(%s, originalValue)"
, (
char
*)
_HintsEnum
[i]);
137
SDLTest_AssertCheck
(
138
result ==
SDL_TRUE
|| result ==
SDL_FALSE
,
139
"Verify valid result was returned, got: %i"
,
140
(
int
)result);
141
}
142
143
SDL_free
(value);
144
145
return
TEST_COMPLETED
;
146
}
147
148
/* ================= Test References ================== */
149
150
/* Hints test cases */
151
static
const
SDLTest_TestCaseReference
hintsTest1
=
152
{ (
SDLTest_TestCaseFp
)
hints_getHint
,
"hints_getHint"
,
"Call to SDL_GetHint"
,
TEST_ENABLED
};
153
154
static
const
SDLTest_TestCaseReference
hintsTest2
=
155
{ (
SDLTest_TestCaseFp
)
hints_setHint
,
"hints_setHint"
,
"Call to SDL_SetHint"
,
TEST_ENABLED
};
156
157
/* Sequence of Hints test cases */
158
static
const
SDLTest_TestCaseReference
*
hintsTests
[] = {
159
&
hintsTest1
, &
hintsTest2
,
NULL
160
};
161
162
/* Hints test suite (global) */
163
SDLTest_TestSuiteReference
hintsTestSuite
= {
164
"Hints"
,
165
NULL
,
166
hintsTests
,
167
NULL
168
};
test
testautomation_hints.c
Generated on Sun Jun 26 2022 23:07:19 for SDL by
1.8.1.2