Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Latest commit

 

History

History
157 lines (124 loc) · 6.12 KB

testautomation_main.c

File metadata and controls

157 lines (124 loc) · 6.12 KB
 
1
2
3
4
5
6
7
8
9
10
11
12
13
/**
* Automated SDL subsystems management test.
*
* Written by Jørgen Tjernø "jorgenpt"
*
* Released under Public Domain.
*/
#include "SDL.h"
#include "SDL_test.h"
/*!
May 18, 2013
May 18, 2013
14
* \brief Tests SDL_Init() and SDL_Quit() of Joystick and Haptic subsystems
15
16
17
18
* \sa
* http://wiki.libsdl.org/moin.cgi/SDL_Init
* http://wiki.libsdl.org/moin.cgi/SDL_Quit
*/
May 18, 2013
May 18, 2013
19
static int main_testInitQuitJoystickHaptic (void *arg)
20
{
May 18, 2013
May 18, 2013
21
22
23
#if defined SDL_JOYSTICK_DISABLED || defined SDL_HAPTIC_DISABLED
return TEST_SKIPPED;
#else
Feb 12, 2013
Feb 12, 2013
24
int enabled_subsystems;
25
26
27
28
int initialized_subsystems = SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC;
SDLTest_AssertCheck( SDL_Init(initialized_subsystems) == 0, "SDL_Init multiple systems." );
Feb 12, 2013
Feb 12, 2013
29
enabled_subsystems = SDL_WasInit(initialized_subsystems);
30
31
32
33
34
35
36
37
SDLTest_AssertCheck( enabled_subsystems == initialized_subsystems, "SDL_WasInit(SDL_INIT_EVERYTHING) contains all systems (%i)", enabled_subsystems );
SDL_Quit();
enabled_subsystems = SDL_WasInit(initialized_subsystems);
SDLTest_AssertCheck( enabled_subsystems == 0, "SDL_Quit should shut down everything (%i)", enabled_subsystems );
return TEST_COMPLETED;
May 18, 2013
May 18, 2013
38
#endif
39
40
41
42
43
44
45
46
47
48
}
/*!
* \brief Tests SDL_InitSubSystem() and SDL_QuitSubSystem()
* \sa
* http://wiki.libsdl.org/moin.cgi/SDL_Init
* http://wiki.libsdl.org/moin.cgi/SDL_Quit
*/
static int main_testInitQuitSubSystem (void *arg)
{
May 18, 2013
May 18, 2013
49
50
51
#if defined SDL_JOYSTICK_DISABLED || defined SDL_HAPTIC_DISABLED || defined SDL_GAMECONTROLLER_DISABLED
return TEST_SKIPPED;
#else
52
53
54
55
int i;
int subsystems[] = { SDL_INIT_JOYSTICK, SDL_INIT_HAPTIC, SDL_INIT_GAMECONTROLLER };
for (i = 0; i < SDL_arraysize(subsystems); ++i) {
Feb 12, 2013
Feb 12, 2013
56
int initialized_system;
57
58
59
60
61
int subsystem = subsystems[i];
SDLTest_AssertCheck( (SDL_WasInit(subsystem) & subsystem) == 0, "SDL_WasInit(%x) before init should be false", subsystem );
SDLTest_AssertCheck( SDL_InitSubSystem(subsystem) == 0, "SDL_InitSubSystem(%x)", subsystem );
Feb 12, 2013
Feb 12, 2013
62
initialized_system = SDL_WasInit(subsystem);
63
64
65
66
67
68
69
70
SDLTest_AssertCheck( (initialized_system & subsystem) != 0, "SDL_WasInit(%x) should be true (%x)", subsystem, initialized_system );
SDL_QuitSubSystem(subsystem);
SDLTest_AssertCheck( (SDL_WasInit(subsystem) & subsystem) == 0, "SDL_WasInit(%x) after shutdown should be false", subsystem );
}
return TEST_COMPLETED;
May 18, 2013
May 18, 2013
71
#endif
72
73
74
75
76
}
const int joy_and_controller = SDL_INIT_JOYSTICK | SDL_INIT_GAMECONTROLLER;
static int main_testImpliedJoystickInit (void *arg)
{
May 18, 2013
May 18, 2013
77
78
79
#if defined SDL_JOYSTICK_DISABLED || defined SDL_GAMECONTROLLER_DISABLED
return TEST_SKIPPED;
#else
Feb 12, 2013
Feb 12, 2013
80
81
int initialized_system;
82
83
84
85
86
// First initialize the controller
SDLTest_AssertCheck( (SDL_WasInit(joy_and_controller) & joy_and_controller) == 0, "SDL_WasInit() before init should be false for joystick & controller" );
SDLTest_AssertCheck( SDL_InitSubSystem(SDL_INIT_GAMECONTROLLER) == 0, "SDL_InitSubSystem(SDL_INIT_GAMECONTROLLER)" );
// Then make sure this implicitly initialized the joystick subsystem
Feb 12, 2013
Feb 12, 2013
87
initialized_system = SDL_WasInit(joy_and_controller);
88
89
SDLTest_AssertCheck( (initialized_system & joy_and_controller) == joy_and_controller, "SDL_WasInit() should be true for joystick & controller (%x)", initialized_system );
May 5, 2013
May 5, 2013
90
// Then quit the controller, and make sure that implicitly also quits the
91
92
93
94
// joystick subsystem
SDL_QuitSubSystem(SDL_INIT_GAMECONTROLLER);
initialized_system = SDL_WasInit(joy_and_controller);
SDLTest_AssertCheck( (initialized_system & joy_and_controller) == 0, "SDL_WasInit() should be false for joystick & controller (%x)", initialized_system );
Feb 13, 2013
Feb 13, 2013
95
May 18, 2013
May 18, 2013
96
97
return TEST_COMPLETED;
#endif
98
99
100
101
}
static int main_testImpliedJoystickQuit (void *arg)
{
May 18, 2013
May 18, 2013
102
103
104
#if defined SDL_JOYSTICK_DISABLED || defined SDL_GAMECONTROLLER_DISABLED
return TEST_SKIPPED;
#else
Feb 12, 2013
Feb 12, 2013
105
106
int initialized_system;
107
108
109
110
111
112
// First initialize the controller and the joystick (explicitly)
SDLTest_AssertCheck( (SDL_WasInit(joy_and_controller) & joy_and_controller) == 0, "SDL_WasInit() before init should be false for joystick & controller" );
SDLTest_AssertCheck( SDL_InitSubSystem(SDL_INIT_JOYSTICK) == 0, "SDL_InitSubSystem(SDL_INIT_JOYSTICK)" );
SDLTest_AssertCheck( SDL_InitSubSystem(SDL_INIT_GAMECONTROLLER) == 0, "SDL_InitSubSystem(SDL_INIT_GAMECONTROLLER)" );
// Then make sure they're both initialized properly
Feb 12, 2013
Feb 12, 2013
113
initialized_system = SDL_WasInit(joy_and_controller);
114
115
116
117
118
119
120
121
122
SDLTest_AssertCheck( (initialized_system & joy_and_controller) == joy_and_controller, "SDL_WasInit() should be true for joystick & controller (%x)", initialized_system );
// Then quit the controller, and make sure that it does NOT quit the
// explicitly initialized joystick subsystem.
SDL_QuitSubSystem(SDL_INIT_GAMECONTROLLER);
initialized_system = SDL_WasInit(joy_and_controller);
SDLTest_AssertCheck( (initialized_system & joy_and_controller) == SDL_INIT_JOYSTICK, "SDL_WasInit() should be false for joystick & controller (%x)", initialized_system );
SDL_QuitSubSystem(SDL_INIT_JOYSTICK);
Feb 13, 2013
Feb 13, 2013
123
May 18, 2013
May 18, 2013
124
125
return TEST_COMPLETED;
#endif
126
127
128
}
static const SDLTest_TestCaseReference mainTest1 =
May 18, 2013
May 18, 2013
129
{ (SDLTest_TestCaseFp)main_testInitQuitJoystickHaptic, "main_testInitQuitJoystickHaptic", "Tests SDL_Init/Quit of Joystick and Haptic subsystem", TEST_ENABLED};
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
static const SDLTest_TestCaseReference mainTest2 =
{ (SDLTest_TestCaseFp)main_testInitQuitSubSystem, "main_testInitQuitSubSystem", "Tests SDL_InitSubSystem/QuitSubSystem", TEST_ENABLED};
static const SDLTest_TestCaseReference mainTest3 =
{ (SDLTest_TestCaseFp)main_testImpliedJoystickInit, "main_testImpliedJoystickInit", "Tests that init for gamecontroller properly implies joystick", TEST_ENABLED};
static const SDLTest_TestCaseReference mainTest4 =
{ (SDLTest_TestCaseFp)main_testImpliedJoystickQuit, "main_testImpliedJoystickQuit", "Tests that quit for gamecontroller doesn't quit joystick if you inited it explicitly", TEST_ENABLED};
/* Sequence of Platform test cases */
static const SDLTest_TestCaseReference *mainTests[] = {
&mainTest1,
&mainTest2,
&mainTest3,
&mainTest4,
NULL
};
/* Platform test suite (global) */
SDLTest_TestSuiteReference mainTestSuite = {
"Main",
NULL,
mainTests,
NULL
};
/* vi: set ts=4 sw=4 expandtab: */