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

Latest commit

 

History

History
182 lines (153 loc) · 5.44 KB

File metadata and controls

182 lines (153 loc) · 5.44 KB
 
Jul 10, 2011
Jul 10, 2011
1
/**
Oct 5, 2011
Oct 5, 2011
2
3
* Original code: automated SDL audio test written by Edgar Simo "bobbens"
* New/updated tests: aschiffler at ferzkopp dot net
Jul 10, 2011
Jul 10, 2011
4
*/
Jul 5, 2011
Jul 5, 2011
5
6
7
8
9
#include <stdio.h>
#include <SDL/SDL.h>
Aug 6, 2011
Aug 6, 2011
10
#include "../../include/SDL_test.h"
Jul 5, 2011
Jul 5, 2011
11
Jul 18, 2011
Jul 18, 2011
12
/* Test cases */
Jul 5, 2011
Jul 5, 2011
13
static const TestCaseReference test1 =
Oct 5, 2011
Oct 5, 2011
14
(TestCaseReference){ "audio_enumerateAndNameAudioDevices", "Enumerate and name available audio devices (output and capture)", TEST_ENABLED, TEST_REQUIRES_AUDIO, 0};
Jul 5, 2011
Jul 5, 2011
15
16
static const TestCaseReference test2 =
Oct 5, 2011
Oct 5, 2011
17
(TestCaseReference){ "audio_enumerateAndNameAudioDevicesNegativeTests", "Netative tests around enumeration and naming of audio devices.", TEST_ENABLED, TEST_REQUIRES_AUDIO, 0};
Jul 5, 2011
Jul 5, 2011
18
19
static const TestCaseReference test3 =
Jul 18, 2011
Jul 18, 2011
20
(TestCaseReference){ "audio_printAudioDrivers", "Checks available audio driver names.", TEST_ENABLED, TEST_REQUIRES_AUDIO, 0};
Jul 5, 2011
Jul 5, 2011
21
22
static const TestCaseReference test4 =
Jul 18, 2011
Jul 18, 2011
23
(TestCaseReference){ "audio_printCurrentAudioDriver", "Checks current audio driver name with initialized audio.", TEST_ENABLED, TEST_REQUIRES_AUDIO, 0};
Jul 5, 2011
Jul 5, 2011
24
25
26
27
28
29
30
31
32
33
34
/* Test suite */
extern const TestCaseReference *testSuite[] = {
&test1, &test2, &test3, &test4, NULL
};
TestCaseReference **QueryTestSuite() {
return (TestCaseReference **)testSuite;
}
Oct 5, 2011
Oct 5, 2011
35
/* Fixture */
Aug 6, 2011
Aug 6, 2011
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
void
SetUp(void *arg)
{
/* Start SDL. */
int ret = SDL_Init( SDL_INIT_AUDIO );
AssertTrue(ret==0, "SDL_Init(SDL_INIT_AUDIO): %s", SDL_GetError());
}
void
TearDown(void *arg)
{
/* Quit SDL. */
SDL_Quit();
}
Jul 5, 2011
Jul 5, 2011
52
53
54
/* Test case functions */
/**
Oct 5, 2011
Oct 5, 2011
55
56
57
58
* \brief Enumerate and name available audio devices (output and capture).
*
* \sa http://wiki.libsdl.org/moin.cgi/SDL_GetNumAudioDevices
* \sa http://wiki.libsdl.org/moin.cgi/SDL_GetAudioDeviceName
Jul 5, 2011
Jul 5, 2011
59
*/
Oct 5, 2011
Oct 5, 2011
60
int audio_enumerateAndNameAudioDevices()
Jul 5, 2011
Jul 5, 2011
61
62
{
int ret;
Oct 5, 2011
Oct 5, 2011
63
64
65
int t, tt;
int i, n, nn;
const char *name, *nameAgain;
Jul 5, 2011
Jul 5, 2011
66
Oct 5, 2011
Oct 5, 2011
67
68
/* Iterate over types: t=0 output device, t=1 input/capture device */
for (t=0; t<2; t++) {
Jul 5, 2011
Jul 5, 2011
69
Oct 5, 2011
Oct 5, 2011
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/* Get number of devices. */
n = SDL_GetNumAudioDevices(t);
AssertTrue(n>=0,
"Number of %s devices < 0, reported as %i: %s",
(t) ? "output" : "capture",
n,
SDL_GetError());
/* Variation of non-zero type */
if (t==1) {
tt = t + RandomIntegerInRange(1,10);
nn = SDL_GetNumAudioDevices(tt);
AssertTrue(n==nn, "SDL_GetNumAudioDevices(%i) : expected same number of audio devices %i, got %i", tt, n, nn);
nn = SDL_GetNumAudioDevices(-tt);
AssertTrue(n==nn, "SDL_GetNumAudioDevices(%i) : expected same number of audio devices %i, got %i", -tt, n, nn);
}
/* List devices. */
if (n>0) {
for (i=0; i<n; i++) {
name = SDL_GetAudioDeviceName(i, t);
AssertTrue(name != NULL, "SDL_GetAudioDeviceName(%i, %i): returned NULL name", i, t);
AssertTrue(strlen(name)>0, "SDL_GetAudioDeviceName(%i, %i): returned empty name string", i, t);
if (t==1) {
/* Also try non-zero type */
nameAgain = SDL_GetAudioDeviceName(i, tt);
AssertTrue(nameAgain != NULL, "SDL_GetAudioDeviceName(%i, %i): returned NULL name", i, tt);
AssertTrue(strlen(nameAgain)>0, "SDL_GetAudioDeviceName(%i, %i): returned empty name string", i, tt);
AssertTrue(strcmp(name, nameAgain)==0,
"SDL_GetAudioDeviceName(%i, %i): returned unexpected name string %s, expected %s",
i, tt, nameAgain, name);
}
}
Jul 5, 2011
Jul 5, 2011
103
104
105
106
107
}
}
}
/**
Oct 5, 2011
Oct 5, 2011
108
109
110
111
* \brief Negative tests around enumeration and naming of audio devices.
*
* \sa http://wiki.libsdl.org/moin.cgi/SDL_GetNumAudioDevices
* \sa http://wiki.libsdl.org/moin.cgi/SDL_GetAudioDeviceName
Jul 5, 2011
Jul 5, 2011
112
*/
Oct 5, 2011
Oct 5, 2011
113
int audio_enumerateAndNameAudioDevicesNegativeTests()
Jul 5, 2011
Jul 5, 2011
114
115
{
int ret;
Oct 5, 2011
Oct 5, 2011
116
117
int t;
int i, j, no, nc;
Aug 6, 2011
Aug 6, 2011
118
const char *name;
Oct 5, 2011
Oct 5, 2011
119
Jul 5, 2011
Jul 5, 2011
120
/* Get number of devices. */
Oct 5, 2011
Oct 5, 2011
121
122
no = SDL_GetNumAudioDevices(0);
nc = SDL_GetNumAudioDevices(1);
Jul 5, 2011
Jul 5, 2011
123
Oct 5, 2011
Oct 5, 2011
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/* Invalid device index when getting name */
for (t=0; t<2; t++) {
/* Negative device index */
i = -1;
name = SDL_GetAudioDeviceName(i, t);
AssertTrue(name == NULL, "SDL_GetAudioDeviceName(%i, %i): returned a name, should return NULL", i, t);
/* Device index past range */
for (j=0; j<3; j++) {
i = (t) ? nc+j : no+j;
name = SDL_GetAudioDeviceName(i, t);
AssertTrue(name == NULL, "SDL_GetAudioDeviceName(%i, %i): returned a name, should return NULL", i, t);
}
/* Capture index past capture range but within output range */
if ((no>0) && (no>nc) && (t==1)) {
i = no-1;
name = SDL_GetAudioDeviceName(i, t);
AssertTrue(name == NULL, "SDL_GetAudioDeviceName(%i, %i): returned a name, should return NULL", i, t);
Jul 5, 2011
Jul 5, 2011
143
144
145
146
147
148
149
150
151
152
}
}
}
/**
* @brief Checks available audio driver names.
*/
int audio_printAudioDrivers()
{
int i, n;
Aug 6, 2011
Aug 6, 2011
153
const char *name;
Jul 5, 2011
Jul 5, 2011
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
/* Get number of drivers */
n = SDL_GetNumAudioDrivers();
AssertTrue(n>=0, "Number of audio drivers >= 0");
/* List drivers. */
if (n>0)
{
for (i=0; i<n; i++) {
name = SDL_GetAudioDriver(i);
AssertTrue(name != NULL, "name != NULL");
AssertTrue(strlen(name)>0, "name empty");
}
}
}
/**
* @brief Checks current audio driver name with initialized audio.
*/
int audio_printCurrentAudioDriver()
{
int ret;
Aug 6, 2011
Aug 6, 2011
176
const char *name;
Jul 5, 2011
Jul 5, 2011
177
178
179
180
181
182
/* Check current audio driver */
name = SDL_GetCurrentAudioDriver();
AssertTrue(name != NULL, "name != NULL");
AssertTrue(strlen(name)>0, "name empty");
}