native_audio 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/assets/include/GL/glew.h +26427 -0
- data/assets/include/GLES2/gl2.h +656 -0
- data/assets/include/GLES2/gl2ext.h +3949 -0
- data/assets/include/GLES2/gl2ext_angle.h +701 -0
- data/assets/include/GLES2/gl2platform.h +27 -0
- data/assets/include/GLES3/gl3.h +1192 -0
- data/assets/include/GLES3/gl31.h +1507 -0
- data/assets/include/GLES3/gl32.h +1808 -0
- data/assets/include/GLES3/gl3platform.h +27 -0
- data/assets/include/KHR/khrplatform.h +290 -0
- data/assets/include/SDL2/SDL.h +233 -0
- data/assets/include/SDL2/SDL_assert.h +326 -0
- data/assets/include/SDL2/SDL_atomic.h +415 -0
- data/assets/include/SDL2/SDL_audio.h +1500 -0
- data/assets/include/SDL2/SDL_bits.h +126 -0
- data/assets/include/SDL2/SDL_blendmode.h +198 -0
- data/assets/include/SDL2/SDL_clipboard.h +141 -0
- data/assets/include/SDL2/SDL_config.h +61 -0
- data/assets/include/SDL2/SDL_config_android.h +194 -0
- data/assets/include/SDL2/SDL_config_emscripten.h +218 -0
- data/assets/include/SDL2/SDL_config_iphoneos.h +217 -0
- data/assets/include/SDL2/SDL_config_macosx.h +277 -0
- data/assets/include/SDL2/SDL_config_minimal.h +95 -0
- data/assets/include/SDL2/SDL_config_ngage.h +89 -0
- data/assets/include/SDL2/SDL_config_os2.h +207 -0
- data/assets/include/SDL2/SDL_config_pandora.h +141 -0
- data/assets/include/SDL2/SDL_config_windows.h +331 -0
- data/assets/include/SDL2/SDL_config_wingdk.h +253 -0
- data/assets/include/SDL2/SDL_config_winrt.h +220 -0
- data/assets/include/SDL2/SDL_config_xbox.h +235 -0
- data/assets/include/SDL2/SDL_copying.h +20 -0
- data/assets/include/SDL2/SDL_cpuinfo.h +594 -0
- data/assets/include/SDL2/SDL_egl.h +2352 -0
- data/assets/include/SDL2/SDL_endian.h +348 -0
- data/assets/include/SDL2/SDL_error.h +163 -0
- data/assets/include/SDL2/SDL_events.h +1166 -0
- data/assets/include/SDL2/SDL_filesystem.h +149 -0
- data/assets/include/SDL2/SDL_gamecontroller.h +1074 -0
- data/assets/include/SDL2/SDL_gesture.h +117 -0
- data/assets/include/SDL2/SDL_guid.h +100 -0
- data/assets/include/SDL2/SDL_haptic.h +1341 -0
- data/assets/include/SDL2/SDL_hidapi.h +451 -0
- data/assets/include/SDL2/SDL_hints.h +2569 -0
- data/assets/include/SDL2/SDL_image.h +2173 -0
- data/assets/include/SDL2/SDL_joystick.h +1066 -0
- data/assets/include/SDL2/SDL_keyboard.h +353 -0
- data/assets/include/SDL2/SDL_keycode.h +358 -0
- data/assets/include/SDL2/SDL_loadso.h +115 -0
- data/assets/include/SDL2/SDL_locale.h +103 -0
- data/assets/include/SDL2/SDL_log.h +404 -0
- data/assets/include/SDL2/SDL_main.h +275 -0
- data/assets/include/SDL2/SDL_messagebox.h +193 -0
- data/assets/include/SDL2/SDL_metal.h +113 -0
- data/assets/include/SDL2/SDL_misc.h +79 -0
- data/assets/include/SDL2/SDL_mixer.h +2784 -0
- data/assets/include/SDL2/SDL_mouse.h +465 -0
- data/assets/include/SDL2/SDL_mutex.h +471 -0
- data/assets/include/SDL2/SDL_name.h +33 -0
- data/assets/include/SDL2/SDL_opengl.h +2132 -0
- data/assets/include/SDL2/SDL_opengl_glext.h +13209 -0
- data/assets/include/SDL2/SDL_opengles.h +39 -0
- data/assets/include/SDL2/SDL_opengles2.h +52 -0
- data/assets/include/SDL2/SDL_opengles2_gl2.h +656 -0
- data/assets/include/SDL2/SDL_opengles2_gl2ext.h +4033 -0
- data/assets/include/SDL2/SDL_opengles2_gl2platform.h +27 -0
- data/assets/include/SDL2/SDL_opengles2_khrplatform.h +311 -0
- data/assets/include/SDL2/SDL_pixels.h +644 -0
- data/assets/include/SDL2/SDL_platform.h +261 -0
- data/assets/include/SDL2/SDL_power.h +88 -0
- data/assets/include/SDL2/SDL_quit.h +58 -0
- data/assets/include/SDL2/SDL_rect.h +376 -0
- data/assets/include/SDL2/SDL_render.h +1919 -0
- data/assets/include/SDL2/SDL_revision.h +6 -0
- data/assets/include/SDL2/SDL_rwops.h +841 -0
- data/assets/include/SDL2/SDL_scancode.h +438 -0
- data/assets/include/SDL2/SDL_sensor.h +322 -0
- data/assets/include/SDL2/SDL_shape.h +155 -0
- data/assets/include/SDL2/SDL_stdinc.h +830 -0
- data/assets/include/SDL2/SDL_surface.h +997 -0
- data/assets/include/SDL2/SDL_system.h +623 -0
- data/assets/include/SDL2/SDL_syswm.h +386 -0
- data/assets/include/SDL2/SDL_test.h +69 -0
- data/assets/include/SDL2/SDL_test_assert.h +105 -0
- data/assets/include/SDL2/SDL_test_common.h +236 -0
- data/assets/include/SDL2/SDL_test_compare.h +69 -0
- data/assets/include/SDL2/SDL_test_crc32.h +124 -0
- data/assets/include/SDL2/SDL_test_font.h +168 -0
- data/assets/include/SDL2/SDL_test_fuzzer.h +386 -0
- data/assets/include/SDL2/SDL_test_harness.h +134 -0
- data/assets/include/SDL2/SDL_test_images.h +78 -0
- data/assets/include/SDL2/SDL_test_log.h +67 -0
- data/assets/include/SDL2/SDL_test_md5.h +129 -0
- data/assets/include/SDL2/SDL_test_memory.h +63 -0
- data/assets/include/SDL2/SDL_test_random.h +115 -0
- data/assets/include/SDL2/SDL_thread.h +464 -0
- data/assets/include/SDL2/SDL_timer.h +222 -0
- data/assets/include/SDL2/SDL_touch.h +150 -0
- data/assets/include/SDL2/SDL_ttf.h +2316 -0
- data/assets/include/SDL2/SDL_types.h +29 -0
- data/assets/include/SDL2/SDL_version.h +204 -0
- data/assets/include/SDL2/SDL_video.h +2150 -0
- data/assets/include/SDL2/SDL_vulkan.h +215 -0
- data/assets/include/SDL2/begin_code.h +187 -0
- data/assets/include/SDL2/close_code.h +40 -0
- data/assets/macos/universal/lib/libFLAC.a +0 -0
- data/assets/macos/universal/lib/libSDL2.a +0 -0
- data/assets/macos/universal/lib/libSDL2_image.a +0 -0
- data/assets/macos/universal/lib/libSDL2_mixer.a +0 -0
- data/assets/macos/universal/lib/libSDL2_ttf.a +0 -0
- data/assets/macos/universal/lib/libmodplug.a +0 -0
- data/assets/macos/universal/lib/libmpg123.a +0 -0
- data/assets/macos/universal/lib/libogg.a +0 -0
- data/assets/macos/universal/lib/libvorbis.a +0 -0
- data/assets/macos/universal/lib/libvorbisfile.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libFLAC.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_mixer.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libglew32.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmodplug.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmpg123.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libogg.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libopus.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libopusfile.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libsndfile.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libssp.a +1 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libstdc++.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libvorbis.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libvorbisfile.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libz.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libzstd.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libFLAC.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libSDL2.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libSDL2_mixer.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libglew32.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libmodplug.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libmpg123.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libogg.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libopus.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libopusfile.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libsndfile.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libssp.a +1 -0
- data/assets/windows/mingw-w64-x86_64/lib/libstdc++.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libvorbis.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libvorbisfile.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libz.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libzstd.a +0 -0
- data/ext/Makefile +270 -0
- data/ext/audio.c +80 -0
- data/ext/audio.o +0 -0
- data/ext/extconf.h +3 -0
- data/ext/extconf.rb +177 -0
- data/ext/mkmf.log +7 -0
- data/lib/audio.bundle +0 -0
- data/lib/native_audio.rb +50 -0
- metadata +198 -0
@@ -0,0 +1,386 @@
|
|
1
|
+
/*
|
2
|
+
Simple DirectMedia Layer
|
3
|
+
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
|
4
|
+
|
5
|
+
This software is provided 'as-is', without any express or implied
|
6
|
+
warranty. In no event will the authors be held liable for any damages
|
7
|
+
arising from the use of this software.
|
8
|
+
|
9
|
+
Permission is granted to anyone to use this software for any purpose,
|
10
|
+
including commercial applications, and to alter it and redistribute it
|
11
|
+
freely, subject to the following restrictions:
|
12
|
+
|
13
|
+
1. The origin of this software must not be misrepresented; you must not
|
14
|
+
claim that you wrote the original software. If you use this software
|
15
|
+
in a product, an acknowledgment in the product documentation would be
|
16
|
+
appreciated but is not required.
|
17
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
18
|
+
misrepresented as being the original software.
|
19
|
+
3. This notice may not be removed or altered from any source distribution.
|
20
|
+
*/
|
21
|
+
|
22
|
+
/**
|
23
|
+
* \file SDL_test_fuzzer.h
|
24
|
+
*
|
25
|
+
* Include file for SDL test framework.
|
26
|
+
*
|
27
|
+
* This code is a part of the SDL2_test library, not the main SDL library.
|
28
|
+
*/
|
29
|
+
|
30
|
+
/*
|
31
|
+
|
32
|
+
Data generators for fuzzing test data in a reproducible way.
|
33
|
+
|
34
|
+
*/
|
35
|
+
|
36
|
+
#ifndef SDL_test_fuzzer_h_
|
37
|
+
#define SDL_test_fuzzer_h_
|
38
|
+
|
39
|
+
#include "begin_code.h"
|
40
|
+
/* Set up for C function definitions, even when using C++ */
|
41
|
+
#ifdef __cplusplus
|
42
|
+
extern "C" {
|
43
|
+
#endif
|
44
|
+
|
45
|
+
|
46
|
+
/*
|
47
|
+
Based on GSOC code by Markus Kauppila <markus.kauppila@gmail.com>
|
48
|
+
*/
|
49
|
+
|
50
|
+
|
51
|
+
/**
|
52
|
+
* \file
|
53
|
+
* Note: The fuzzer implementation uses a static instance of random context
|
54
|
+
* internally which makes it thread-UNsafe.
|
55
|
+
*/
|
56
|
+
|
57
|
+
/**
|
58
|
+
* Initializes the fuzzer for a test
|
59
|
+
*
|
60
|
+
* \param execKey Execution "Key" that initializes the random number generator uniquely for the test.
|
61
|
+
*
|
62
|
+
*/
|
63
|
+
void SDLTest_FuzzerInit(Uint64 execKey);
|
64
|
+
|
65
|
+
|
66
|
+
/**
|
67
|
+
* Returns a random Uint8
|
68
|
+
*
|
69
|
+
* \returns a generated integer
|
70
|
+
*/
|
71
|
+
Uint8 SDLTest_RandomUint8(void);
|
72
|
+
|
73
|
+
/**
|
74
|
+
* Returns a random Sint8
|
75
|
+
*
|
76
|
+
* \returns a generated signed integer
|
77
|
+
*/
|
78
|
+
Sint8 SDLTest_RandomSint8(void);
|
79
|
+
|
80
|
+
|
81
|
+
/**
|
82
|
+
* Returns a random Uint16
|
83
|
+
*
|
84
|
+
* \returns a generated integer
|
85
|
+
*/
|
86
|
+
Uint16 SDLTest_RandomUint16(void);
|
87
|
+
|
88
|
+
/**
|
89
|
+
* Returns a random Sint16
|
90
|
+
*
|
91
|
+
* \returns a generated signed integer
|
92
|
+
*/
|
93
|
+
Sint16 SDLTest_RandomSint16(void);
|
94
|
+
|
95
|
+
|
96
|
+
/**
|
97
|
+
* Returns a random integer
|
98
|
+
*
|
99
|
+
* \returns a generated integer
|
100
|
+
*/
|
101
|
+
Sint32 SDLTest_RandomSint32(void);
|
102
|
+
|
103
|
+
|
104
|
+
/**
|
105
|
+
* Returns a random positive integer
|
106
|
+
*
|
107
|
+
* \returns a generated integer
|
108
|
+
*/
|
109
|
+
Uint32 SDLTest_RandomUint32(void);
|
110
|
+
|
111
|
+
/**
|
112
|
+
* Returns random Uint64.
|
113
|
+
*
|
114
|
+
* \returns a generated integer
|
115
|
+
*/
|
116
|
+
Uint64 SDLTest_RandomUint64(void);
|
117
|
+
|
118
|
+
|
119
|
+
/**
|
120
|
+
* Returns random Sint64.
|
121
|
+
*
|
122
|
+
* \returns a generated signed integer
|
123
|
+
*/
|
124
|
+
Sint64 SDLTest_RandomSint64(void);
|
125
|
+
|
126
|
+
/**
|
127
|
+
* \returns a random float in range [0.0 - 1.0]
|
128
|
+
*/
|
129
|
+
float SDLTest_RandomUnitFloat(void);
|
130
|
+
|
131
|
+
/**
|
132
|
+
* \returns a random double in range [0.0 - 1.0]
|
133
|
+
*/
|
134
|
+
double SDLTest_RandomUnitDouble(void);
|
135
|
+
|
136
|
+
/**
|
137
|
+
* \returns a random float.
|
138
|
+
*
|
139
|
+
*/
|
140
|
+
float SDLTest_RandomFloat(void);
|
141
|
+
|
142
|
+
/**
|
143
|
+
* \returns a random double.
|
144
|
+
*
|
145
|
+
*/
|
146
|
+
double SDLTest_RandomDouble(void);
|
147
|
+
|
148
|
+
/**
|
149
|
+
* Returns a random boundary value for Uint8 within the given boundaries.
|
150
|
+
* Boundaries are inclusive, see the usage examples below. If validDomain
|
151
|
+
* is true, the function will only return valid boundaries, otherwise non-valid
|
152
|
+
* boundaries are also possible.
|
153
|
+
* If boundary1 > boundary2, the values are swapped
|
154
|
+
*
|
155
|
+
* Usage examples:
|
156
|
+
* RandomUint8BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20
|
157
|
+
* RandomUint8BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21
|
158
|
+
* RandomUint8BoundaryValue(0, 99, SDL_FALSE) returns 100
|
159
|
+
* RandomUint8BoundaryValue(0, 255, SDL_FALSE) returns 0 (error set)
|
160
|
+
*
|
161
|
+
* \param boundary1 Lower boundary limit
|
162
|
+
* \param boundary2 Upper boundary limit
|
163
|
+
* \param validDomain Should the generated boundary be valid (=within the bounds) or not?
|
164
|
+
*
|
165
|
+
* \returns a random boundary value for the given range and domain or 0 with error set
|
166
|
+
*/
|
167
|
+
Uint8 SDLTest_RandomUint8BoundaryValue(Uint8 boundary1, Uint8 boundary2, SDL_bool validDomain);
|
168
|
+
|
169
|
+
/**
|
170
|
+
* Returns a random boundary value for Uint16 within the given boundaries.
|
171
|
+
* Boundaries are inclusive, see the usage examples below. If validDomain
|
172
|
+
* is true, the function will only return valid boundaries, otherwise non-valid
|
173
|
+
* boundaries are also possible.
|
174
|
+
* If boundary1 > boundary2, the values are swapped
|
175
|
+
*
|
176
|
+
* Usage examples:
|
177
|
+
* RandomUint16BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20
|
178
|
+
* RandomUint16BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21
|
179
|
+
* RandomUint16BoundaryValue(0, 99, SDL_FALSE) returns 100
|
180
|
+
* RandomUint16BoundaryValue(0, 0xFFFF, SDL_FALSE) returns 0 (error set)
|
181
|
+
*
|
182
|
+
* \param boundary1 Lower boundary limit
|
183
|
+
* \param boundary2 Upper boundary limit
|
184
|
+
* \param validDomain Should the generated boundary be valid (=within the bounds) or not?
|
185
|
+
*
|
186
|
+
* \returns a random boundary value for the given range and domain or 0 with error set
|
187
|
+
*/
|
188
|
+
Uint16 SDLTest_RandomUint16BoundaryValue(Uint16 boundary1, Uint16 boundary2, SDL_bool validDomain);
|
189
|
+
|
190
|
+
/**
|
191
|
+
* Returns a random boundary value for Uint32 within the given boundaries.
|
192
|
+
* Boundaries are inclusive, see the usage examples below. If validDomain
|
193
|
+
* is true, the function will only return valid boundaries, otherwise non-valid
|
194
|
+
* boundaries are also possible.
|
195
|
+
* If boundary1 > boundary2, the values are swapped
|
196
|
+
*
|
197
|
+
* Usage examples:
|
198
|
+
* RandomUint32BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20
|
199
|
+
* RandomUint32BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21
|
200
|
+
* RandomUint32BoundaryValue(0, 99, SDL_FALSE) returns 100
|
201
|
+
* RandomUint32BoundaryValue(0, 0xFFFFFFFF, SDL_FALSE) returns 0 (with error set)
|
202
|
+
*
|
203
|
+
* \param boundary1 Lower boundary limit
|
204
|
+
* \param boundary2 Upper boundary limit
|
205
|
+
* \param validDomain Should the generated boundary be valid (=within the bounds) or not?
|
206
|
+
*
|
207
|
+
* \returns a random boundary value for the given range and domain or 0 with error set
|
208
|
+
*/
|
209
|
+
Uint32 SDLTest_RandomUint32BoundaryValue(Uint32 boundary1, Uint32 boundary2, SDL_bool validDomain);
|
210
|
+
|
211
|
+
/**
|
212
|
+
* Returns a random boundary value for Uint64 within the given boundaries.
|
213
|
+
* Boundaries are inclusive, see the usage examples below. If validDomain
|
214
|
+
* is true, the function will only return valid boundaries, otherwise non-valid
|
215
|
+
* boundaries are also possible.
|
216
|
+
* If boundary1 > boundary2, the values are swapped
|
217
|
+
*
|
218
|
+
* Usage examples:
|
219
|
+
* RandomUint64BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20
|
220
|
+
* RandomUint64BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21
|
221
|
+
* RandomUint64BoundaryValue(0, 99, SDL_FALSE) returns 100
|
222
|
+
* RandomUint64BoundaryValue(0, 0xFFFFFFFFFFFFFFFF, SDL_FALSE) returns 0 (with error set)
|
223
|
+
*
|
224
|
+
* \param boundary1 Lower boundary limit
|
225
|
+
* \param boundary2 Upper boundary limit
|
226
|
+
* \param validDomain Should the generated boundary be valid (=within the bounds) or not?
|
227
|
+
*
|
228
|
+
* \returns a random boundary value for the given range and domain or 0 with error set
|
229
|
+
*/
|
230
|
+
Uint64 SDLTest_RandomUint64BoundaryValue(Uint64 boundary1, Uint64 boundary2, SDL_bool validDomain);
|
231
|
+
|
232
|
+
/**
|
233
|
+
* Returns a random boundary value for Sint8 within the given boundaries.
|
234
|
+
* Boundaries are inclusive, see the usage examples below. If validDomain
|
235
|
+
* is true, the function will only return valid boundaries, otherwise non-valid
|
236
|
+
* boundaries are also possible.
|
237
|
+
* If boundary1 > boundary2, the values are swapped
|
238
|
+
*
|
239
|
+
* Usage examples:
|
240
|
+
* RandomSint8BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20
|
241
|
+
* RandomSint8BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9
|
242
|
+
* RandomSint8BoundaryValue(SINT8_MIN, 99, SDL_FALSE) returns 100
|
243
|
+
* RandomSint8BoundaryValue(SINT8_MIN, SINT8_MAX, SDL_FALSE) returns SINT8_MIN (== error value) with error set
|
244
|
+
*
|
245
|
+
* \param boundary1 Lower boundary limit
|
246
|
+
* \param boundary2 Upper boundary limit
|
247
|
+
* \param validDomain Should the generated boundary be valid (=within the bounds) or not?
|
248
|
+
*
|
249
|
+
* \returns a random boundary value for the given range and domain or SINT8_MIN with error set
|
250
|
+
*/
|
251
|
+
Sint8 SDLTest_RandomSint8BoundaryValue(Sint8 boundary1, Sint8 boundary2, SDL_bool validDomain);
|
252
|
+
|
253
|
+
|
254
|
+
/**
|
255
|
+
* Returns a random boundary value for Sint16 within the given boundaries.
|
256
|
+
* Boundaries are inclusive, see the usage examples below. If validDomain
|
257
|
+
* is true, the function will only return valid boundaries, otherwise non-valid
|
258
|
+
* boundaries are also possible.
|
259
|
+
* If boundary1 > boundary2, the values are swapped
|
260
|
+
*
|
261
|
+
* Usage examples:
|
262
|
+
* RandomSint16BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20
|
263
|
+
* RandomSint16BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9
|
264
|
+
* RandomSint16BoundaryValue(SINT16_MIN, 99, SDL_FALSE) returns 100
|
265
|
+
* RandomSint16BoundaryValue(SINT16_MIN, SINT16_MAX, SDL_FALSE) returns SINT16_MIN (== error value) with error set
|
266
|
+
*
|
267
|
+
* \param boundary1 Lower boundary limit
|
268
|
+
* \param boundary2 Upper boundary limit
|
269
|
+
* \param validDomain Should the generated boundary be valid (=within the bounds) or not?
|
270
|
+
*
|
271
|
+
* \returns a random boundary value for the given range and domain or SINT16_MIN with error set
|
272
|
+
*/
|
273
|
+
Sint16 SDLTest_RandomSint16BoundaryValue(Sint16 boundary1, Sint16 boundary2, SDL_bool validDomain);
|
274
|
+
|
275
|
+
/**
|
276
|
+
* Returns a random boundary value for Sint32 within the given boundaries.
|
277
|
+
* Boundaries are inclusive, see the usage examples below. If validDomain
|
278
|
+
* is true, the function will only return valid boundaries, otherwise non-valid
|
279
|
+
* boundaries are also possible.
|
280
|
+
* If boundary1 > boundary2, the values are swapped
|
281
|
+
*
|
282
|
+
* Usage examples:
|
283
|
+
* RandomSint32BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20
|
284
|
+
* RandomSint32BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9
|
285
|
+
* RandomSint32BoundaryValue(SINT32_MIN, 99, SDL_FALSE) returns 100
|
286
|
+
* RandomSint32BoundaryValue(SINT32_MIN, SINT32_MAX, SDL_FALSE) returns SINT32_MIN (== error value)
|
287
|
+
*
|
288
|
+
* \param boundary1 Lower boundary limit
|
289
|
+
* \param boundary2 Upper boundary limit
|
290
|
+
* \param validDomain Should the generated boundary be valid (=within the bounds) or not?
|
291
|
+
*
|
292
|
+
* \returns a random boundary value for the given range and domain or SINT32_MIN with error set
|
293
|
+
*/
|
294
|
+
Sint32 SDLTest_RandomSint32BoundaryValue(Sint32 boundary1, Sint32 boundary2, SDL_bool validDomain);
|
295
|
+
|
296
|
+
/**
|
297
|
+
* Returns a random boundary value for Sint64 within the given boundaries.
|
298
|
+
* Boundaries are inclusive, see the usage examples below. If validDomain
|
299
|
+
* is true, the function will only return valid boundaries, otherwise non-valid
|
300
|
+
* boundaries are also possible.
|
301
|
+
* If boundary1 > boundary2, the values are swapped
|
302
|
+
*
|
303
|
+
* Usage examples:
|
304
|
+
* RandomSint64BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20
|
305
|
+
* RandomSint64BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9
|
306
|
+
* RandomSint64BoundaryValue(SINT64_MIN, 99, SDL_FALSE) returns 100
|
307
|
+
* RandomSint64BoundaryValue(SINT64_MIN, SINT64_MAX, SDL_FALSE) returns SINT64_MIN (== error value) and error set
|
308
|
+
*
|
309
|
+
* \param boundary1 Lower boundary limit
|
310
|
+
* \param boundary2 Upper boundary limit
|
311
|
+
* \param validDomain Should the generated boundary be valid (=within the bounds) or not?
|
312
|
+
*
|
313
|
+
* \returns a random boundary value for the given range and domain or SINT64_MIN with error set
|
314
|
+
*/
|
315
|
+
Sint64 SDLTest_RandomSint64BoundaryValue(Sint64 boundary1, Sint64 boundary2, SDL_bool validDomain);
|
316
|
+
|
317
|
+
|
318
|
+
/**
|
319
|
+
* Returns integer in range [min, max] (inclusive).
|
320
|
+
* Min and max values can be negative values.
|
321
|
+
* If Max in smaller than min, then the values are swapped.
|
322
|
+
* Min and max are the same value, that value will be returned.
|
323
|
+
*
|
324
|
+
* \param min Minimum inclusive value of returned random number
|
325
|
+
* \param max Maximum inclusive value of returned random number
|
326
|
+
*
|
327
|
+
* \returns a generated random integer in range
|
328
|
+
*/
|
329
|
+
Sint32 SDLTest_RandomIntegerInRange(Sint32 min, Sint32 max);
|
330
|
+
|
331
|
+
|
332
|
+
/**
|
333
|
+
* Generates random null-terminated string. The minimum length for
|
334
|
+
* the string is 1 character, maximum length for the string is 255
|
335
|
+
* characters and it can contain ASCII characters from 32 to 126.
|
336
|
+
*
|
337
|
+
* Note: Returned string needs to be deallocated.
|
338
|
+
*
|
339
|
+
* \returns a newly allocated random string; or NULL if length was invalid or string could not be allocated.
|
340
|
+
*/
|
341
|
+
char * SDLTest_RandomAsciiString(void);
|
342
|
+
|
343
|
+
|
344
|
+
/**
|
345
|
+
* Generates random null-terminated string. The maximum length for
|
346
|
+
* the string is defined by the maxLength parameter.
|
347
|
+
* String can contain ASCII characters from 32 to 126.
|
348
|
+
*
|
349
|
+
* Note: Returned string needs to be deallocated.
|
350
|
+
*
|
351
|
+
* \param maxLength The maximum length of the generated string.
|
352
|
+
*
|
353
|
+
* \returns a newly allocated random string; or NULL if maxLength was invalid or string could not be allocated.
|
354
|
+
*/
|
355
|
+
char * SDLTest_RandomAsciiStringWithMaximumLength(int maxLength);
|
356
|
+
|
357
|
+
|
358
|
+
/**
|
359
|
+
* Generates random null-terminated string. The length for
|
360
|
+
* the string is defined by the size parameter.
|
361
|
+
* String can contain ASCII characters from 32 to 126.
|
362
|
+
*
|
363
|
+
* Note: Returned string needs to be deallocated.
|
364
|
+
*
|
365
|
+
* \param size The length of the generated string
|
366
|
+
*
|
367
|
+
* \returns a newly allocated random string; or NULL if size was invalid or string could not be allocated.
|
368
|
+
*/
|
369
|
+
char * SDLTest_RandomAsciiStringOfSize(int size);
|
370
|
+
|
371
|
+
/**
|
372
|
+
* Get the invocation count for the fuzzer since last ...FuzzerInit.
|
373
|
+
*
|
374
|
+
* \returns the invocation count.
|
375
|
+
*/
|
376
|
+
int SDLTest_GetFuzzerInvocationCount(void);
|
377
|
+
|
378
|
+
/* Ends C function definitions when using C++ */
|
379
|
+
#ifdef __cplusplus
|
380
|
+
}
|
381
|
+
#endif
|
382
|
+
#include "close_code.h"
|
383
|
+
|
384
|
+
#endif /* SDL_test_fuzzer_h_ */
|
385
|
+
|
386
|
+
/* vi: set ts=4 sw=4 expandtab: */
|
@@ -0,0 +1,134 @@
|
|
1
|
+
/*
|
2
|
+
Simple DirectMedia Layer
|
3
|
+
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
|
4
|
+
|
5
|
+
This software is provided 'as-is', without any express or implied
|
6
|
+
warranty. In no event will the authors be held liable for any damages
|
7
|
+
arising from the use of this software.
|
8
|
+
|
9
|
+
Permission is granted to anyone to use this software for any purpose,
|
10
|
+
including commercial applications, and to alter it and redistribute it
|
11
|
+
freely, subject to the following restrictions:
|
12
|
+
|
13
|
+
1. The origin of this software must not be misrepresented; you must not
|
14
|
+
claim that you wrote the original software. If you use this software
|
15
|
+
in a product, an acknowledgment in the product documentation would be
|
16
|
+
appreciated but is not required.
|
17
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
18
|
+
misrepresented as being the original software.
|
19
|
+
3. This notice may not be removed or altered from any source distribution.
|
20
|
+
*/
|
21
|
+
|
22
|
+
/**
|
23
|
+
* \file SDL_test_harness.h
|
24
|
+
*
|
25
|
+
* Include file for SDL test framework.
|
26
|
+
*
|
27
|
+
* This code is a part of the SDL2_test library, not the main SDL library.
|
28
|
+
*/
|
29
|
+
|
30
|
+
/*
|
31
|
+
Defines types for test case definitions and the test execution harness API.
|
32
|
+
|
33
|
+
Based on original GSOC code by Markus Kauppila <markus.kauppila@gmail.com>
|
34
|
+
*/
|
35
|
+
|
36
|
+
#ifndef SDL_test_h_arness_h
|
37
|
+
#define SDL_test_h_arness_h
|
38
|
+
|
39
|
+
#include "begin_code.h"
|
40
|
+
/* Set up for C function definitions, even when using C++ */
|
41
|
+
#ifdef __cplusplus
|
42
|
+
extern "C" {
|
43
|
+
#endif
|
44
|
+
|
45
|
+
|
46
|
+
/* ! Definitions for test case structures */
|
47
|
+
#define TEST_ENABLED 1
|
48
|
+
#define TEST_DISABLED 0
|
49
|
+
|
50
|
+
/* ! Definition of all the possible test return values of the test case method */
|
51
|
+
#define TEST_ABORTED -1
|
52
|
+
#define TEST_STARTED 0
|
53
|
+
#define TEST_COMPLETED 1
|
54
|
+
#define TEST_SKIPPED 2
|
55
|
+
|
56
|
+
/* ! Definition of all the possible test results for the harness */
|
57
|
+
#define TEST_RESULT_PASSED 0
|
58
|
+
#define TEST_RESULT_FAILED 1
|
59
|
+
#define TEST_RESULT_NO_ASSERT 2
|
60
|
+
#define TEST_RESULT_SKIPPED 3
|
61
|
+
#define TEST_RESULT_SETUP_FAILURE 4
|
62
|
+
|
63
|
+
/* !< Function pointer to a test case setup function (run before every test) */
|
64
|
+
typedef void (*SDLTest_TestCaseSetUpFp)(void *arg);
|
65
|
+
|
66
|
+
/* !< Function pointer to a test case function */
|
67
|
+
typedef int (*SDLTest_TestCaseFp)(void *arg);
|
68
|
+
|
69
|
+
/* !< Function pointer to a test case teardown function (run after every test) */
|
70
|
+
typedef void (*SDLTest_TestCaseTearDownFp)(void *arg);
|
71
|
+
|
72
|
+
/**
|
73
|
+
* Holds information about a single test case.
|
74
|
+
*/
|
75
|
+
typedef struct SDLTest_TestCaseReference {
|
76
|
+
/* !< Func2Stress */
|
77
|
+
SDLTest_TestCaseFp testCase;
|
78
|
+
/* !< Short name (or function name) "Func2Stress" */
|
79
|
+
const char *name;
|
80
|
+
/* !< Long name or full description "This test pushes func2() to the limit." */
|
81
|
+
const char *description;
|
82
|
+
/* !< Set to TEST_ENABLED or TEST_DISABLED (test won't be run) */
|
83
|
+
int enabled;
|
84
|
+
} SDLTest_TestCaseReference;
|
85
|
+
|
86
|
+
/**
|
87
|
+
* Holds information about a test suite (multiple test cases).
|
88
|
+
*/
|
89
|
+
typedef struct SDLTest_TestSuiteReference {
|
90
|
+
/* !< "PlatformSuite" */
|
91
|
+
const char *name;
|
92
|
+
/* !< The function that is run before each test. NULL skips. */
|
93
|
+
SDLTest_TestCaseSetUpFp testSetUp;
|
94
|
+
/* !< The test cases that are run as part of the suite. Last item should be NULL. */
|
95
|
+
const SDLTest_TestCaseReference **testCases;
|
96
|
+
/* !< The function that is run after each test. NULL skips. */
|
97
|
+
SDLTest_TestCaseTearDownFp testTearDown;
|
98
|
+
} SDLTest_TestSuiteReference;
|
99
|
+
|
100
|
+
|
101
|
+
/**
|
102
|
+
* \brief Generates a random run seed string for the harness. The generated seed will contain alphanumeric characters (0-9A-Z).
|
103
|
+
*
|
104
|
+
* Note: The returned string needs to be deallocated by the caller.
|
105
|
+
*
|
106
|
+
* \param length The length of the seed string to generate
|
107
|
+
*
|
108
|
+
* \returns the generated seed string
|
109
|
+
*/
|
110
|
+
char *SDLTest_GenerateRunSeed(const int length);
|
111
|
+
|
112
|
+
/**
|
113
|
+
* \brief Execute a test suite using the given run seed and execution key.
|
114
|
+
*
|
115
|
+
* \param testSuites Suites containing the test case.
|
116
|
+
* \param userRunSeed Custom run seed provided by user, or NULL to autogenerate one.
|
117
|
+
* \param userExecKey Custom execution key provided by user, or 0 to autogenerate one.
|
118
|
+
* \param filter Filter specification. NULL disables. Case sensitive.
|
119
|
+
* \param testIterations Number of iterations to run each test case.
|
120
|
+
*
|
121
|
+
* \returns the test run result: 0 when all tests passed, 1 if any tests failed.
|
122
|
+
*/
|
123
|
+
int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *userRunSeed, Uint64 userExecKey, const char *filter, int testIterations);
|
124
|
+
|
125
|
+
|
126
|
+
/* Ends C function definitions when using C++ */
|
127
|
+
#ifdef __cplusplus
|
128
|
+
}
|
129
|
+
#endif
|
130
|
+
#include "close_code.h"
|
131
|
+
|
132
|
+
#endif /* SDL_test_h_arness_h */
|
133
|
+
|
134
|
+
/* vi: set ts=4 sw=4 expandtab: */
|
@@ -0,0 +1,78 @@
|
|
1
|
+
/*
|
2
|
+
Simple DirectMedia Layer
|
3
|
+
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
|
4
|
+
|
5
|
+
This software is provided 'as-is', without any express or implied
|
6
|
+
warranty. In no event will the authors be held liable for any damages
|
7
|
+
arising from the use of this software.
|
8
|
+
|
9
|
+
Permission is granted to anyone to use this software for any purpose,
|
10
|
+
including commercial applications, and to alter it and redistribute it
|
11
|
+
freely, subject to the following restrictions:
|
12
|
+
|
13
|
+
1. The origin of this software must not be misrepresented; you must not
|
14
|
+
claim that you wrote the original software. If you use this software
|
15
|
+
in a product, an acknowledgment in the product documentation would be
|
16
|
+
appreciated but is not required.
|
17
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
18
|
+
misrepresented as being the original software.
|
19
|
+
3. This notice may not be removed or altered from any source distribution.
|
20
|
+
*/
|
21
|
+
|
22
|
+
/**
|
23
|
+
* \file SDL_test_images.h
|
24
|
+
*
|
25
|
+
* Include file for SDL test framework.
|
26
|
+
*
|
27
|
+
* This code is a part of the SDL2_test library, not the main SDL library.
|
28
|
+
*/
|
29
|
+
|
30
|
+
/*
|
31
|
+
|
32
|
+
Defines some images for tests.
|
33
|
+
|
34
|
+
*/
|
35
|
+
|
36
|
+
#ifndef SDL_test_images_h_
|
37
|
+
#define SDL_test_images_h_
|
38
|
+
|
39
|
+
#include "SDL.h"
|
40
|
+
|
41
|
+
#include "begin_code.h"
|
42
|
+
/* Set up for C function definitions, even when using C++ */
|
43
|
+
#ifdef __cplusplus
|
44
|
+
extern "C" {
|
45
|
+
#endif
|
46
|
+
|
47
|
+
/**
|
48
|
+
*Type for test images.
|
49
|
+
*/
|
50
|
+
typedef struct SDLTest_SurfaceImage_s {
|
51
|
+
int width;
|
52
|
+
int height;
|
53
|
+
unsigned int bytes_per_pixel; /* 3:RGB, 4:RGBA */
|
54
|
+
const char *pixel_data;
|
55
|
+
} SDLTest_SurfaceImage_t;
|
56
|
+
|
57
|
+
/* Test images */
|
58
|
+
SDL_Surface *SDLTest_ImageBlit(void);
|
59
|
+
SDL_Surface *SDLTest_ImageBlitColor(void);
|
60
|
+
SDL_Surface *SDLTest_ImageBlitAlpha(void);
|
61
|
+
SDL_Surface *SDLTest_ImageBlitBlendAdd(void);
|
62
|
+
SDL_Surface *SDLTest_ImageBlitBlend(void);
|
63
|
+
SDL_Surface *SDLTest_ImageBlitBlendMod(void);
|
64
|
+
SDL_Surface *SDLTest_ImageBlitBlendNone(void);
|
65
|
+
SDL_Surface *SDLTest_ImageBlitBlendAll(void);
|
66
|
+
SDL_Surface *SDLTest_ImageFace(void);
|
67
|
+
SDL_Surface *SDLTest_ImagePrimitives(void);
|
68
|
+
SDL_Surface *SDLTest_ImagePrimitivesBlend(void);
|
69
|
+
|
70
|
+
/* Ends C function definitions when using C++ */
|
71
|
+
#ifdef __cplusplus
|
72
|
+
}
|
73
|
+
#endif
|
74
|
+
#include "close_code.h"
|
75
|
+
|
76
|
+
#endif /* SDL_test_images_h_ */
|
77
|
+
|
78
|
+
/* vi: set ts=4 sw=4 expandtab: */
|
@@ -0,0 +1,67 @@
|
|
1
|
+
/*
|
2
|
+
Simple DirectMedia Layer
|
3
|
+
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
|
4
|
+
|
5
|
+
This software is provided 'as-is', without any express or implied
|
6
|
+
warranty. In no event will the authors be held liable for any damages
|
7
|
+
arising from the use of this software.
|
8
|
+
|
9
|
+
Permission is granted to anyone to use this software for any purpose,
|
10
|
+
including commercial applications, and to alter it and redistribute it
|
11
|
+
freely, subject to the following restrictions:
|
12
|
+
|
13
|
+
1. The origin of this software must not be misrepresented; you must not
|
14
|
+
claim that you wrote the original software. If you use this software
|
15
|
+
in a product, an acknowledgment in the product documentation would be
|
16
|
+
appreciated but is not required.
|
17
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
18
|
+
misrepresented as being the original software.
|
19
|
+
3. This notice may not be removed or altered from any source distribution.
|
20
|
+
*/
|
21
|
+
|
22
|
+
/**
|
23
|
+
* \file SDL_test_log.h
|
24
|
+
*
|
25
|
+
* Include file for SDL test framework.
|
26
|
+
*
|
27
|
+
* This code is a part of the SDL2_test library, not the main SDL library.
|
28
|
+
*/
|
29
|
+
|
30
|
+
/*
|
31
|
+
*
|
32
|
+
* Wrapper to log in the TEST category
|
33
|
+
*
|
34
|
+
*/
|
35
|
+
|
36
|
+
#ifndef SDL_test_log_h_
|
37
|
+
#define SDL_test_log_h_
|
38
|
+
|
39
|
+
#include "begin_code.h"
|
40
|
+
/* Set up for C function definitions, even when using C++ */
|
41
|
+
#ifdef __cplusplus
|
42
|
+
extern "C" {
|
43
|
+
#endif
|
44
|
+
|
45
|
+
/**
|
46
|
+
* \brief Prints given message with a timestamp in the TEST category and INFO priority.
|
47
|
+
*
|
48
|
+
* \param fmt Message to be logged
|
49
|
+
*/
|
50
|
+
void SDLTest_Log(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1);
|
51
|
+
|
52
|
+
/**
|
53
|
+
* \brief Prints given message with a timestamp in the TEST category and the ERROR priority.
|
54
|
+
*
|
55
|
+
* \param fmt Message to be logged
|
56
|
+
*/
|
57
|
+
void SDLTest_LogError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1);
|
58
|
+
|
59
|
+
/* Ends C function definitions when using C++ */
|
60
|
+
#ifdef __cplusplus
|
61
|
+
}
|
62
|
+
#endif
|
63
|
+
#include "close_code.h"
|
64
|
+
|
65
|
+
#endif /* SDL_test_log_h_ */
|
66
|
+
|
67
|
+
/* vi: set ts=4 sw=4 expandtab: */
|