include/SDL_test_fuzzer.h
author Sam Lantinga <slouken@libsdl.org>
Tue, 25 Sep 2018 20:08:51 -0700
changeset 12224 0582b4e1fa9f
parent 11811 5d94cb6b24d3
child 12503 806492103856
permissions -rw-r--r--
Fixed bug 4268 - Android_JNI_OpenAudioDevice function has error

alittle

where iscapture == 1

1.param set error

(*env)->CallStaticIntMethod(env, mAudioManagerClass, midCaptureOpen, sampleRate, audioBuffer16Bit, audioBufferStereo, desiredBufferFrames)

param:audioBuffer16Bit need change to captureBuffer16Bit

2.logic error

if (is16Bit) {
// ALITTLE Modify the source code
if (iscapture) {
audioBufferFrames = (*env)->GetArrayLength(env, (jshortArray)captureBuffer);
} else {
audioBufferPinned = (*env)->GetShortArrayElements(env, (jshortArray)audioBuffer, &isCopy);
audioBufferFrames = (*env)->GetArrayLength(env, (jshortArray)audioBuffer);
}
// if (!iscapture) {
// audioBufferPinned = (*env)->GetShortArrayElements(env, (jshortArray)audioBuffer, &isCopy);
// }
// audioBufferFrames = (*env)->GetArrayLength(env, (jshortArray)audioBuffer);
} else {
// ALITTLE Modify the source code
if (iscapture) {
audioBufferFrames = (*env)->GetArrayLength(env, (jbyteArray)captureBuffer);
} else {
audioBufferPinned = (*env)->GetByteArrayElements(env, (jbyteArray)audioBuffer, &isCopy);
audioBufferFrames = (*env)->GetArrayLength(env, (jbyteArray)audioBuffer);
}
// if (!iscapture) {
// audioBufferPinned = (*env)->GetByteArrayElements(env, (jbyteArray)audioBuffer, &isCopy);
// }
// audioBufferFrames = (*env)->GetArrayLength(env, (jbyteArray)audioBuffer);
}
aschiffler@6711
     1
/*
aschiffler@6711
     2
  Simple DirectMedia Layer
slouken@11811
     3
  Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
aschiffler@6711
     4
aschiffler@6711
     5
  This software is provided 'as-is', without any express or implied
aschiffler@6711
     6
  warranty.  In no event will the authors be held liable for any damages
aschiffler@6711
     7
  arising from the use of this software.
aschiffler@6711
     8
aschiffler@6711
     9
  Permission is granted to anyone to use this software for any purpose,
aschiffler@6711
    10
  including commercial applications, and to alter it and redistribute it
aschiffler@6711
    11
  freely, subject to the following restrictions:
aschiffler@6711
    12
aschiffler@6711
    13
  1. The origin of this software must not be misrepresented; you must not
aschiffler@6711
    14
     claim that you wrote the original software. If you use this software
aschiffler@6711
    15
     in a product, an acknowledgment in the product documentation would be
aschiffler@6711
    16
     appreciated but is not required.
aschiffler@6711
    17
  2. Altered source versions must be plainly marked as such, and must not be
aschiffler@6711
    18
     misrepresented as being the original software.
aschiffler@6711
    19
  3. This notice may not be removed or altered from any source distribution.
aschiffler@6711
    20
*/
aschiffler@6711
    21
aschiffler@6711
    22
/**
aschiffler@6711
    23
 *  \file SDL_test_fuzzer.h
slouken@7191
    24
 *
aschiffler@6711
    25
 *  Include file for SDL test framework.
aschiffler@6711
    26
 *
aschiffler@6711
    27
 *  This code is a part of the SDL2_test library, not the main SDL library.
aschiffler@6711
    28
 */
aschiffler@6711
    29
slouken@7191
    30
/*
aschiffler@6711
    31
aschiffler@6711
    32
  Data generators for fuzzing test data in a reproducible way.
slouken@7191
    33
aschiffler@6711
    34
*/
aschiffler@6711
    35
slouken@10638
    36
#ifndef SDL_test_fuzzer_h_
slouken@10638
    37
#define SDL_test_fuzzer_h_
aschiffler@6711
    38
aschiffler@6711
    39
#include "begin_code.h"
aschiffler@6711
    40
/* Set up for C function definitions, even when using C++ */
aschiffler@6711
    41
#ifdef __cplusplus
aschiffler@6711
    42
extern "C" {
aschiffler@6711
    43
#endif
aschiffler@6711
    44
aschiffler@6711
    45
aschiffler@6711
    46
/*
aschiffler@6711
    47
  Based on GSOC code by Markus Kauppila <markus.kauppila@gmail.com>
aschiffler@6711
    48
*/
aschiffler@6711
    49
aschiffler@6711
    50
aschiffler@6711
    51
/**
aschiffler@6711
    52
 * \file
aschiffler@6711
    53
 * Note: The fuzzer implementation uses a static instance of random context
aschiffler@6711
    54
 * internally which makes it thread-UNsafe.
aschiffler@6711
    55
 */
aschiffler@6711
    56
aschiffler@6711
    57
/**
aschiffler@6711
    58
 * Initializes the fuzzer for a test
aschiffler@6711
    59
 *
philipp@9233
    60
 * \param execKey Execution "Key" that initializes the random number generator uniquely for the test.
aschiffler@6711
    61
 *
aschiffler@6711
    62
 */
aschiffler@6711
    63
void SDLTest_FuzzerInit(Uint64 execKey);
aschiffler@6711
    64
aschiffler@6711
    65
aschiffler@6711
    66
/**
aschiffler@6711
    67
 * Returns a random Uint8
aschiffler@6711
    68
 *
aschiffler@6711
    69
 * \returns Generated integer
aschiffler@6711
    70
 */
slouken@10609
    71
Uint8 SDLTest_RandomUint8(void);
aschiffler@6711
    72
aschiffler@6711
    73
/**
aschiffler@6711
    74
 * Returns a random Sint8
aschiffler@6711
    75
 *
aschiffler@6711
    76
 * \returns Generated signed integer
aschiffler@6711
    77
 */
slouken@10609
    78
Sint8 SDLTest_RandomSint8(void);
aschiffler@6711
    79
aschiffler@6711
    80
aschiffler@6711
    81
/**
aschiffler@6711
    82
 * Returns a random Uint16
aschiffler@6711
    83
 *
aschiffler@6711
    84
 * \returns Generated integer
aschiffler@6711
    85
 */
slouken@10609
    86
Uint16 SDLTest_RandomUint16(void);
aschiffler@6711
    87
aschiffler@6711
    88
/**
aschiffler@6711
    89
 * Returns a random Sint16
aschiffler@6711
    90
 *
aschiffler@6711
    91
 * \returns Generated signed integer
aschiffler@6711
    92
 */
slouken@10609
    93
Sint16 SDLTest_RandomSint16(void);
aschiffler@6711
    94
aschiffler@6711
    95
aschiffler@6711
    96
/**
aschiffler@6711
    97
 * Returns a random integer
aschiffler@6711
    98
 *
aschiffler@6711
    99
 * \returns Generated integer
aschiffler@6711
   100
 */
slouken@10609
   101
Sint32 SDLTest_RandomSint32(void);
aschiffler@6711
   102
aschiffler@6711
   103
aschiffler@6711
   104
/**
aschiffler@6711
   105
 * Returns a random positive integer
aschiffler@6711
   106
 *
aschiffler@6711
   107
 * \returns Generated integer
aschiffler@6711
   108
 */
slouken@10609
   109
Uint32 SDLTest_RandomUint32(void);
aschiffler@6711
   110
aschiffler@6711
   111
/**
aschiffler@6711
   112
 * Returns random Uint64.
aschiffler@6711
   113
 *
aschiffler@6711
   114
 * \returns Generated integer
aschiffler@6711
   115
 */
slouken@10609
   116
Uint64 SDLTest_RandomUint64(void);
aschiffler@6711
   117
aschiffler@6711
   118
aschiffler@6711
   119
/**
aschiffler@6711
   120
 * Returns random Sint64.
aschiffler@6711
   121
 *
aschiffler@6711
   122
 * \returns Generated signed integer
aschiffler@6711
   123
 */
slouken@10609
   124
Sint64 SDLTest_RandomSint64(void);
aschiffler@6711
   125
aschiffler@6711
   126
/**
aschiffler@6711
   127
 * \returns random float in range [0.0 - 1.0[
aschiffler@6711
   128
 */
slouken@10609
   129
float SDLTest_RandomUnitFloat(void);
aschiffler@6711
   130
aschiffler@6711
   131
/**
slouken@7191
   132
 * \returns random double in range [0.0 - 1.0[
aschiffler@6711
   133
 */
slouken@10609
   134
double SDLTest_RandomUnitDouble(void);
aschiffler@6711
   135
aschiffler@6711
   136
/**
aschiffler@6711
   137
 * \returns random float.
aschiffler@6711
   138
 *
aschiffler@6711
   139
 */
slouken@10609
   140
float SDLTest_RandomFloat(void);
aschiffler@6711
   141
aschiffler@6711
   142
/**
aschiffler@6711
   143
 * \returns random double.
aschiffler@6711
   144
 *
aschiffler@6711
   145
 */
slouken@10609
   146
double SDLTest_RandomDouble(void);
aschiffler@6711
   147
aschiffler@6711
   148
/**
aschiffler@6711
   149
 * Returns a random boundary value for Uint8 within the given boundaries.
aschiffler@6711
   150
 * Boundaries are inclusive, see the usage examples below. If validDomain
aschiffler@6711
   151
 * is true, the function will only return valid boundaries, otherwise non-valid
aschiffler@6711
   152
 * boundaries are also possible.
aschiffler@6711
   153
 * If boundary1 > boundary2, the values are swapped
aschiffler@6711
   154
 *
aschiffler@6711
   155
 * Usage examples:
aschiffler@6711
   156
 * RandomUint8BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20
aschiffler@6711
   157
 * RandomUint8BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21
aschiffler@6711
   158
 * RandomUint8BoundaryValue(0, 99, SDL_FALSE) returns 100
aschiffler@6872
   159
 * RandomUint8BoundaryValue(0, 255, SDL_FALSE) returns 0 (error set)
aschiffler@6711
   160
 *
aschiffler@6711
   161
 * \param boundary1 Lower boundary limit
aschiffler@6711
   162
 * \param boundary2 Upper boundary limit
aschiffler@6872
   163
 * \param validDomain Should the generated boundary be valid (=within the bounds) or not?
aschiffler@6711
   164
 *
aschiffler@6872
   165
 * \returns Random boundary value for the given range and domain or 0 with error set
aschiffler@6711
   166
 */
aschiffler@6711
   167
Uint8 SDLTest_RandomUint8BoundaryValue(Uint8 boundary1, Uint8 boundary2, SDL_bool validDomain);
aschiffler@6711
   168
aschiffler@6711
   169
/**
aschiffler@6711
   170
 * Returns a random boundary value for Uint16 within the given boundaries.
aschiffler@6711
   171
 * Boundaries are inclusive, see the usage examples below. If validDomain
aschiffler@6711
   172
 * is true, the function will only return valid boundaries, otherwise non-valid
aschiffler@6711
   173
 * boundaries are also possible.
aschiffler@6711
   174
 * If boundary1 > boundary2, the values are swapped
aschiffler@6711
   175
 *
aschiffler@6711
   176
 * Usage examples:
aschiffler@6711
   177
 * RandomUint16BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20
aschiffler@6711
   178
 * RandomUint16BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21
aschiffler@6711
   179
 * RandomUint16BoundaryValue(0, 99, SDL_FALSE) returns 100
aschiffler@6872
   180
 * RandomUint16BoundaryValue(0, 0xFFFF, SDL_FALSE) returns 0 (error set)
aschiffler@6711
   181
 *
aschiffler@6711
   182
 * \param boundary1 Lower boundary limit
aschiffler@6711
   183
 * \param boundary2 Upper boundary limit
aschiffler@6872
   184
 * \param validDomain Should the generated boundary be valid (=within the bounds) or not?
aschiffler@6711
   185
 *
aschiffler@6872
   186
 * \returns Random boundary value for the given range and domain or 0 with error set
aschiffler@6711
   187
 */
aschiffler@6711
   188
Uint16 SDLTest_RandomUint16BoundaryValue(Uint16 boundary1, Uint16 boundary2, SDL_bool validDomain);
aschiffler@6711
   189
aschiffler@6711
   190
/**
aschiffler@6711
   191
 * Returns a random boundary value for Uint32 within the given boundaries.
aschiffler@6711
   192
 * Boundaries are inclusive, see the usage examples below. If validDomain
aschiffler@6711
   193
 * is true, the function will only return valid boundaries, otherwise non-valid
aschiffler@6711
   194
 * boundaries are also possible.
aschiffler@6711
   195
 * If boundary1 > boundary2, the values are swapped
aschiffler@6711
   196
 *
aschiffler@6711
   197
 * Usage examples:
aschiffler@6711
   198
 * RandomUint32BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20
aschiffler@6711
   199
 * RandomUint32BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21
aschiffler@6711
   200
 * RandomUint32BoundaryValue(0, 99, SDL_FALSE) returns 100
aschiffler@6872
   201
 * RandomUint32BoundaryValue(0, 0xFFFFFFFF, SDL_FALSE) returns 0 (with error set)
aschiffler@6711
   202
 *
aschiffler@6711
   203
 * \param boundary1 Lower boundary limit
aschiffler@6711
   204
 * \param boundary2 Upper boundary limit
aschiffler@6872
   205
 * \param validDomain Should the generated boundary be valid (=within the bounds) or not?
aschiffler@6711
   206
 *
aschiffler@6872
   207
 * \returns Random boundary value for the given range and domain or 0 with error set
aschiffler@6711
   208
 */
aschiffler@6711
   209
Uint32 SDLTest_RandomUint32BoundaryValue(Uint32 boundary1, Uint32 boundary2, SDL_bool validDomain);
aschiffler@6711
   210
aschiffler@6711
   211
/**
aschiffler@6711
   212
 * Returns a random boundary value for Uint64 within the given boundaries.
aschiffler@6711
   213
 * Boundaries are inclusive, see the usage examples below. If validDomain
aschiffler@6711
   214
 * is true, the function will only return valid boundaries, otherwise non-valid
aschiffler@6711
   215
 * boundaries are also possible.
aschiffler@6711
   216
 * If boundary1 > boundary2, the values are swapped
aschiffler@6711
   217
 *
aschiffler@6711
   218
 * Usage examples:
aschiffler@6711
   219
 * RandomUint64BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20
aschiffler@6711
   220
 * RandomUint64BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21
aschiffler@6711
   221
 * RandomUint64BoundaryValue(0, 99, SDL_FALSE) returns 100
aschiffler@6872
   222
 * RandomUint64BoundaryValue(0, 0xFFFFFFFFFFFFFFFF, SDL_FALSE) returns 0 (with error set)
aschiffler@6711
   223
 *
aschiffler@6711
   224
 * \param boundary1 Lower boundary limit
aschiffler@6711
   225
 * \param boundary2 Upper boundary limit
aschiffler@6872
   226
 * \param validDomain Should the generated boundary be valid (=within the bounds) or not?
aschiffler@6711
   227
 *
aschiffler@6872
   228
 * \returns Random boundary value for the given range and domain or 0 with error set
aschiffler@6711
   229
 */
aschiffler@6711
   230
Uint64 SDLTest_RandomUint64BoundaryValue(Uint64 boundary1, Uint64 boundary2, SDL_bool validDomain);
aschiffler@6711
   231
aschiffler@6711
   232
/**
aschiffler@6711
   233
 * Returns a random boundary value for Sint8 within the given boundaries.
aschiffler@6711
   234
 * Boundaries are inclusive, see the usage examples below. If validDomain
aschiffler@6711
   235
 * is true, the function will only return valid boundaries, otherwise non-valid
aschiffler@6711
   236
 * boundaries are also possible.
aschiffler@6711
   237
 * If boundary1 > boundary2, the values are swapped
aschiffler@6711
   238
 *
aschiffler@6711
   239
 * Usage examples:
aschiffler@6711
   240
 * RandomSint8BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20
aschiffler@6711
   241
 * RandomSint8BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9
aschiffler@6872
   242
 * RandomSint8BoundaryValue(SINT8_MIN, 99, SDL_FALSE) returns 100
aschiffler@6872
   243
 * RandomSint8BoundaryValue(SINT8_MIN, SINT8_MAX, SDL_FALSE) returns SINT8_MIN (== error value) with error set
aschiffler@6711
   244
 *
aschiffler@6711
   245
 * \param boundary1 Lower boundary limit
aschiffler@6711
   246
 * \param boundary2 Upper boundary limit
aschiffler@6872
   247
 * \param validDomain Should the generated boundary be valid (=within the bounds) or not?
aschiffler@6711
   248
 *
aschiffler@6872
   249
 * \returns Random boundary value for the given range and domain or SINT8_MIN with error set
aschiffler@6711
   250
 */
aschiffler@6711
   251
Sint8 SDLTest_RandomSint8BoundaryValue(Sint8 boundary1, Sint8 boundary2, SDL_bool validDomain);
aschiffler@6711
   252
aschiffler@6711
   253
aschiffler@6711
   254
/**
aschiffler@6711
   255
 * Returns a random boundary value for Sint16 within the given boundaries.
aschiffler@6711
   256
 * Boundaries are inclusive, see the usage examples below. If validDomain
aschiffler@6711
   257
 * is true, the function will only return valid boundaries, otherwise non-valid
aschiffler@6711
   258
 * boundaries are also possible.
aschiffler@6711
   259
 * If boundary1 > boundary2, the values are swapped
aschiffler@6711
   260
 *
aschiffler@6711
   261
 * Usage examples:
aschiffler@6711
   262
 * RandomSint16BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20
aschiffler@6711
   263
 * RandomSint16BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9
aschiffler@6872
   264
 * RandomSint16BoundaryValue(SINT16_MIN, 99, SDL_FALSE) returns 100
aschiffler@6872
   265
 * RandomSint16BoundaryValue(SINT16_MIN, SINT16_MAX, SDL_FALSE) returns SINT16_MIN (== error value) with error set
aschiffler@6711
   266
 *
aschiffler@6711
   267
 * \param boundary1 Lower boundary limit
aschiffler@6711
   268
 * \param boundary2 Upper boundary limit
aschiffler@6872
   269
 * \param validDomain Should the generated boundary be valid (=within the bounds) or not?
aschiffler@6711
   270
 *
aschiffler@6872
   271
 * \returns Random boundary value for the given range and domain or SINT16_MIN with error set
aschiffler@6711
   272
 */
aschiffler@6711
   273
Sint16 SDLTest_RandomSint16BoundaryValue(Sint16 boundary1, Sint16 boundary2, SDL_bool validDomain);
aschiffler@6711
   274
aschiffler@6711
   275
/**
aschiffler@6711
   276
 * Returns a random boundary value for Sint32 within the given boundaries.
aschiffler@6711
   277
 * Boundaries are inclusive, see the usage examples below. If validDomain
aschiffler@6711
   278
 * is true, the function will only return valid boundaries, otherwise non-valid
aschiffler@6711
   279
 * boundaries are also possible.
aschiffler@6711
   280
 * If boundary1 > boundary2, the values are swapped
aschiffler@6711
   281
 *
aschiffler@6711
   282
 * Usage examples:
aschiffler@6711
   283
 * RandomSint32BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20
aschiffler@6711
   284
 * RandomSint32BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9
aschiffler@6711
   285
 * RandomSint32BoundaryValue(SINT32_MIN, 99, SDL_FALSE) returns 100
aschiffler@6711
   286
 * RandomSint32BoundaryValue(SINT32_MIN, SINT32_MAX, SDL_FALSE) returns SINT32_MIN (== error value)
aschiffler@6711
   287
 *
aschiffler@6711
   288
 * \param boundary1 Lower boundary limit
aschiffler@6711
   289
 * \param boundary2 Upper boundary limit
aschiffler@6872
   290
 * \param validDomain Should the generated boundary be valid (=within the bounds) or not?
aschiffler@6711
   291
 *
aschiffler@6872
   292
 * \returns Random boundary value for the given range and domain or SINT32_MIN with error set
aschiffler@6711
   293
 */
aschiffler@6711
   294
Sint32 SDLTest_RandomSint32BoundaryValue(Sint32 boundary1, Sint32 boundary2, SDL_bool validDomain);
aschiffler@6711
   295
aschiffler@6711
   296
/**
aschiffler@6711
   297
 * Returns a random boundary value for Sint64 within the given boundaries.
aschiffler@6711
   298
 * Boundaries are inclusive, see the usage examples below. If validDomain
aschiffler@6711
   299
 * is true, the function will only return valid boundaries, otherwise non-valid
aschiffler@6711
   300
 * boundaries are also possible.
aschiffler@6711
   301
 * If boundary1 > boundary2, the values are swapped
aschiffler@6711
   302
 *
aschiffler@6711
   303
 * Usage examples:
aschiffler@6711
   304
 * RandomSint64BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20
aschiffler@6711
   305
 * RandomSint64BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9
aschiffler@6711
   306
 * RandomSint64BoundaryValue(SINT64_MIN, 99, SDL_FALSE) returns 100
aschiffler@6872
   307
 * RandomSint64BoundaryValue(SINT64_MIN, SINT64_MAX, SDL_FALSE) returns SINT64_MIN (== error value) and error set
aschiffler@6711
   308
 *
aschiffler@6711
   309
 * \param boundary1 Lower boundary limit
aschiffler@6711
   310
 * \param boundary2 Upper boundary limit
aschiffler@6872
   311
 * \param validDomain Should the generated boundary be valid (=within the bounds) or not?
aschiffler@6711
   312
 *
aschiffler@6872
   313
 * \returns Random boundary value for the given range and domain or SINT64_MIN with error set
aschiffler@6711
   314
 */
aschiffler@6711
   315
Sint64 SDLTest_RandomSint64BoundaryValue(Sint64 boundary1, Sint64 boundary2, SDL_bool validDomain);
aschiffler@6711
   316
aschiffler@6711
   317
aschiffler@6711
   318
/**
aschiffler@6711
   319
 * Returns integer in range [min, max] (inclusive).
aschiffler@6711
   320
 * Min and max values can be negative values.
philipp@9232
   321
 * If Max in smaller than min, then the values are swapped.
aschiffler@6711
   322
 * Min and max are the same value, that value will be returned.
aschiffler@6711
   323
 *
aschiffler@6875
   324
 * \param min Minimum inclusive value of returned random number
aschiffler@6875
   325
 * \param max Maximum inclusive value of returned random number
aschiffler@6875
   326
 *
aschiffler@6875
   327
 * \returns Generated random integer in range
aschiffler@6711
   328
 */
aschiffler@6711
   329
Sint32 SDLTest_RandomIntegerInRange(Sint32 min, Sint32 max);
aschiffler@6711
   330
aschiffler@6711
   331
aschiffler@6711
   332
/**
aschiffler@6811
   333
 * Generates random null-terminated string. The minimum length for
slouken@7191
   334
 * the string is 1 character, maximum length for the string is 255
aschiffler@6811
   335
 * characters and it can contain ASCII characters from 32 to 126.
aschiffler@6711
   336
 *
aschiffler@6711
   337
 * Note: Returned string needs to be deallocated.
aschiffler@6711
   338
 *
aschiffler@6811
   339
 * \returns Newly allocated random string; or NULL if length was invalid or string could not be allocated.
aschiffler@6711
   340
 */
slouken@10609
   341
char * SDLTest_RandomAsciiString(void);
aschiffler@6711
   342
aschiffler@6711
   343
aschiffler@6711
   344
/**
aschiffler@6711
   345
 * Generates random null-terminated string. The maximum length for
aschiffler@6811
   346
 * the string is defined by the maxLength parameter.
aschiffler@6811
   347
 * String can contain ASCII characters from 32 to 126.
aschiffler@6711
   348
 *
aschiffler@6711
   349
 * Note: Returned string needs to be deallocated.
aschiffler@6711
   350
 *
aschiffler@6811
   351
 * \param maxLength The maximum length of the generated string.
aschiffler@6711
   352
 *
slouken@7191
   353
 * \returns Newly allocated random string; or NULL if maxLength was invalid or string could not be allocated.
aschiffler@6711
   354
 */
aschiffler@6711
   355
char * SDLTest_RandomAsciiStringWithMaximumLength(int maxLength);
aschiffler@6711
   356
aschiffler@6811
   357
aschiffler@6811
   358
/**
aschiffler@6811
   359
 * Generates random null-terminated string. The length for
aschiffler@6811
   360
 * the string is defined by the size parameter.
aschiffler@6811
   361
 * String can contain ASCII characters from 32 to 126.
aschiffler@6811
   362
 *
aschiffler@6811
   363
 * Note: Returned string needs to be deallocated.
aschiffler@6811
   364
 *
aschiffler@6811
   365
 * \param size The length of the generated string
aschiffler@6811
   366
 *
aschiffler@6811
   367
 * \returns Newly allocated random string; or NULL if size was invalid or string could not be allocated.
aschiffler@6811
   368
 */
aschiffler@6811
   369
char * SDLTest_RandomAsciiStringOfSize(int size);
aschiffler@6811
   370
aschiffler@6711
   371
/**
aschiffler@6711
   372
 * Returns the invocation count for the fuzzer since last ...FuzzerInit.
aschiffler@6711
   373
 */
slouken@10609
   374
int SDLTest_GetFuzzerInvocationCount(void);
aschiffler@6711
   375
aschiffler@6711
   376
/* Ends C function definitions when using C++ */
aschiffler@6711
   377
#ifdef __cplusplus
aschiffler@6711
   378
}
aschiffler@6711
   379
#endif
aschiffler@6711
   380
#include "close_code.h"
aschiffler@6711
   381
slouken@10638
   382
#endif /* SDL_test_fuzzer_h_ */
aschiffler@6711
   383
aschiffler@6711
   384
/* vi: set ts=4 sw=4 expandtab: */