include/SDL_test_fuzzer.h
author Andreas Schiffler <aschiffler@ferzkopp.net>
Sat, 12 Jan 2013 22:58:12 -0800
changeset 6811 60d95fcfaf3c
parent 6711 e6355923901d
child 6872 2f4c95464651
permissions -rw-r--r--
Update SDL_InvalidParamError to take param name; add additional fuzzer function; add new tests to keyboard test suite; improve surface test suite
aschiffler@6711
     1
/*
aschiffler@6711
     2
  Simple DirectMedia Layer
aschiffler@6711
     3
  Copyright (C) 1997-2012 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
aschiffler@6711
    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
aschiffler@6711
    30
/* 
aschiffler@6711
    31
aschiffler@6711
    32
  Data generators for fuzzing test data in a reproducible way.
aschiffler@6711
    33
 
aschiffler@6711
    34
*/
aschiffler@6711
    35
aschiffler@6711
    36
#ifndef _SDL_test_fuzzer_h
aschiffler@6711
    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
/* *INDENT-OFF* */
aschiffler@6711
    43
extern "C" {
aschiffler@6711
    44
/* *INDENT-ON* */
aschiffler@6711
    45
#endif
aschiffler@6711
    46
aschiffler@6711
    47
aschiffler@6711
    48
/*
aschiffler@6711
    49
  Based on GSOC code by Markus Kauppila <markus.kauppila@gmail.com>
aschiffler@6711
    50
*/
aschiffler@6711
    51
aschiffler@6711
    52
aschiffler@6711
    53
/**
aschiffler@6711
    54
 * \file
aschiffler@6711
    55
 * Note: The fuzzer implementation uses a static instance of random context
aschiffler@6711
    56
 * internally which makes it thread-UNsafe.
aschiffler@6711
    57
 */
aschiffler@6711
    58
aschiffler@6711
    59
/**
aschiffler@6711
    60
 * Initializes the fuzzer for a test
aschiffler@6711
    61
 *
aschiffler@6711
    62
 * /param execKey Execution "Key" that initializes the random number generator uniquely for the test.
aschiffler@6711
    63
 *
aschiffler@6711
    64
 */
aschiffler@6711
    65
void SDLTest_FuzzerInit(Uint64 execKey);
aschiffler@6711
    66
aschiffler@6711
    67
aschiffler@6711
    68
/**
aschiffler@6711
    69
 * Returns a random Uint8
aschiffler@6711
    70
 *
aschiffler@6711
    71
 * \returns Generated integer
aschiffler@6711
    72
 */
aschiffler@6711
    73
Uint8 SDLTest_RandomUint8();
aschiffler@6711
    74
aschiffler@6711
    75
/**
aschiffler@6711
    76
 * Returns a random Sint8
aschiffler@6711
    77
 *
aschiffler@6711
    78
 * \returns Generated signed integer
aschiffler@6711
    79
 */
aschiffler@6711
    80
Sint8 SDLTest_RandomSint8();
aschiffler@6711
    81
aschiffler@6711
    82
aschiffler@6711
    83
/**
aschiffler@6711
    84
 * Returns a random Uint16
aschiffler@6711
    85
 *
aschiffler@6711
    86
 * \returns Generated integer
aschiffler@6711
    87
 */
aschiffler@6711
    88
Uint16 SDLTest_RandomUint16();
aschiffler@6711
    89
aschiffler@6711
    90
/**
aschiffler@6711
    91
 * Returns a random Sint16
aschiffler@6711
    92
 *
aschiffler@6711
    93
 * \returns Generated signed integer
aschiffler@6711
    94
 */
aschiffler@6711
    95
Sint16 SDLTest_RandomSint16();
aschiffler@6711
    96
aschiffler@6711
    97
aschiffler@6711
    98
/**
aschiffler@6711
    99
 * Returns a random integer
aschiffler@6711
   100
 *
aschiffler@6711
   101
 * \returns Generated integer
aschiffler@6711
   102
 */
aschiffler@6711
   103
Sint32 SDLTest_RandomSint32();
aschiffler@6711
   104
aschiffler@6711
   105
aschiffler@6711
   106
/**
aschiffler@6711
   107
 * Returns a random positive integer
aschiffler@6711
   108
 *
aschiffler@6711
   109
 * \returns Generated integer
aschiffler@6711
   110
 */
aschiffler@6711
   111
Uint32 SDLTest_RandomUint32();
aschiffler@6711
   112
aschiffler@6711
   113
/**
aschiffler@6711
   114
 * Returns random Uint64.
aschiffler@6711
   115
 *
aschiffler@6711
   116
 * \returns Generated integer
aschiffler@6711
   117
 */
aschiffler@6711
   118
Uint64 SDLTest_RandomUint64();
aschiffler@6711
   119
aschiffler@6711
   120
aschiffler@6711
   121
/**
aschiffler@6711
   122
 * Returns random Sint64.
aschiffler@6711
   123
 *
aschiffler@6711
   124
 * \returns Generated signed integer
aschiffler@6711
   125
 */
aschiffler@6711
   126
Sint64 SDLTest_RandomSint64();
aschiffler@6711
   127
aschiffler@6711
   128
/**
aschiffler@6711
   129
 * \returns random float in range [0.0 - 1.0[
aschiffler@6711
   130
 */
aschiffler@6711
   131
float SDLTest_RandomUnitFloat();
aschiffler@6711
   132
aschiffler@6711
   133
/**
aschiffler@6711
   134
 * \returns random double in range [0.0 - 1.0[ 
aschiffler@6711
   135
 */
aschiffler@6711
   136
double SDLTest_RandomUnitDouble();
aschiffler@6711
   137
aschiffler@6711
   138
/**
aschiffler@6711
   139
 * \returns random float.
aschiffler@6711
   140
 *
aschiffler@6711
   141
 */
aschiffler@6711
   142
float SDLTest_RandomFloat();
aschiffler@6711
   143
aschiffler@6711
   144
/**
aschiffler@6711
   145
 * \returns random double.
aschiffler@6711
   146
 *
aschiffler@6711
   147
 */
aschiffler@6711
   148
double SDLTest_RandomDouble();
aschiffler@6711
   149
aschiffler@6711
   150
/**
aschiffler@6711
   151
 * Returns a random boundary value for Uint8 within the given boundaries.
aschiffler@6711
   152
 * Boundaries are inclusive, see the usage examples below. If validDomain
aschiffler@6711
   153
 * is true, the function will only return valid boundaries, otherwise non-valid
aschiffler@6711
   154
 * boundaries are also possible.
aschiffler@6711
   155
 * If boundary1 > boundary2, the values are swapped
aschiffler@6711
   156
 *
aschiffler@6711
   157
 * Usage examples:
aschiffler@6711
   158
 * RandomUint8BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20
aschiffler@6711
   159
 * RandomUint8BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21
aschiffler@6711
   160
 * RandomUint8BoundaryValue(0, 99, SDL_FALSE) returns 100
aschiffler@6711
   161
 * RandomUint8BoundaryValue(0, 255, SDL_FALSE) returns -1 (== error value)
aschiffler@6711
   162
 *
aschiffler@6711
   163
 * \param boundary1 Lower boundary limit
aschiffler@6711
   164
 * \param boundary2 Upper boundary limit
aschiffler@6711
   165
 * \param validDomain Should the generated boundary be valid or not?
aschiffler@6711
   166
 *
aschiffler@6711
   167
 * \returns Boundary value in given range or error value (-1)
aschiffler@6711
   168
 */
aschiffler@6711
   169
Uint8 SDLTest_RandomUint8BoundaryValue(Uint8 boundary1, Uint8 boundary2, SDL_bool validDomain);
aschiffler@6711
   170
aschiffler@6711
   171
/**
aschiffler@6711
   172
 * Returns a random boundary value for Uint16 within the given boundaries.
aschiffler@6711
   173
 * Boundaries are inclusive, see the usage examples below. If validDomain
aschiffler@6711
   174
 * is true, the function will only return valid boundaries, otherwise non-valid
aschiffler@6711
   175
 * boundaries are also possible.
aschiffler@6711
   176
 * If boundary1 > boundary2, the values are swapped
aschiffler@6711
   177
 *
aschiffler@6711
   178
 * Usage examples:
aschiffler@6711
   179
 * RandomUint16BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20
aschiffler@6711
   180
 * RandomUint16BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21
aschiffler@6711
   181
 * RandomUint16BoundaryValue(0, 99, SDL_FALSE) returns 100
aschiffler@6711
   182
 * RandomUint16BoundaryValue(0, 0xFFFF, SDL_FALSE) returns -1 (== error value)
aschiffler@6711
   183
 *
aschiffler@6711
   184
 * \param boundary1 Lower boundary limit
aschiffler@6711
   185
 * \param boundary2 Upper boundary limit
aschiffler@6711
   186
 * \param validDomain Should the generated boundary be valid or not?
aschiffler@6711
   187
 *
aschiffler@6711
   188
 * \returns Boundary value in given range or error value (-1)
aschiffler@6711
   189
 */
aschiffler@6711
   190
Uint16 SDLTest_RandomUint16BoundaryValue(Uint16 boundary1, Uint16 boundary2, SDL_bool validDomain);
aschiffler@6711
   191
aschiffler@6711
   192
/**
aschiffler@6711
   193
 * Returns a random boundary value for Uint32 within the given boundaries.
aschiffler@6711
   194
 * Boundaries are inclusive, see the usage examples below. If validDomain
aschiffler@6711
   195
 * is true, the function will only return valid boundaries, otherwise non-valid
aschiffler@6711
   196
 * boundaries are also possible.
aschiffler@6711
   197
 * If boundary1 > boundary2, the values are swapped
aschiffler@6711
   198
 *
aschiffler@6711
   199
 * Usage examples:
aschiffler@6711
   200
 * RandomUint32BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20
aschiffler@6711
   201
 * RandomUint32BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21
aschiffler@6711
   202
 * RandomUint32BoundaryValue(0, 99, SDL_FALSE) returns 100
aschiffler@6711
   203
 * RandomUint32BoundaryValue(0, 0xFFFFFFFF, SDL_FALSE) returns -1 (== error value)
aschiffler@6711
   204
 *
aschiffler@6711
   205
 * \param boundary1 Lower boundary limit
aschiffler@6711
   206
 * \param boundary2 Upper boundary limit
aschiffler@6711
   207
 * \param validDomain Should the generated boundary be valid or not?
aschiffler@6711
   208
 *
aschiffler@6711
   209
 * \returns Boundary value in given range or error value (-1)
aschiffler@6711
   210
 */
aschiffler@6711
   211
Uint32 SDLTest_RandomUint32BoundaryValue(Uint32 boundary1, Uint32 boundary2, SDL_bool validDomain);
aschiffler@6711
   212
aschiffler@6711
   213
/**
aschiffler@6711
   214
 * Returns a random boundary value for Uint64 within the given boundaries.
aschiffler@6711
   215
 * Boundaries are inclusive, see the usage examples below. If validDomain
aschiffler@6711
   216
 * is true, the function will only return valid boundaries, otherwise non-valid
aschiffler@6711
   217
 * boundaries are also possible.
aschiffler@6711
   218
 * If boundary1 > boundary2, the values are swapped
aschiffler@6711
   219
 *
aschiffler@6711
   220
 * Usage examples:
aschiffler@6711
   221
 * RandomUint64BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20
aschiffler@6711
   222
 * RandomUint64BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21
aschiffler@6711
   223
 * RandomUint64BoundaryValue(0, 99, SDL_FALSE) returns 100
aschiffler@6711
   224
 * RandomUint64BoundaryValue(0, 0xFFFFFFFFFFFFFFFF, SDL_FALSE) returns -1 (== error value)
aschiffler@6711
   225
 *
aschiffler@6711
   226
 * \param boundary1 Lower boundary limit
aschiffler@6711
   227
 * \param boundary2 Upper boundary limit
aschiffler@6711
   228
 * \param validDomain Should the generated boundary be valid or not?
aschiffler@6711
   229
 *
aschiffler@6711
   230
 * \returns Boundary value in given range or error value (-1)
aschiffler@6711
   231
 */
aschiffler@6711
   232
Uint64 SDLTest_RandomUint64BoundaryValue(Uint64 boundary1, Uint64 boundary2, SDL_bool validDomain);
aschiffler@6711
   233
aschiffler@6711
   234
/**
aschiffler@6711
   235
 * Returns a random boundary value for Sint8 within the given boundaries.
aschiffler@6711
   236
 * Boundaries are inclusive, see the usage examples below. If validDomain
aschiffler@6711
   237
 * is true, the function will only return valid boundaries, otherwise non-valid
aschiffler@6711
   238
 * boundaries are also possible.
aschiffler@6711
   239
 * If boundary1 > boundary2, the values are swapped
aschiffler@6711
   240
 *
aschiffler@6711
   241
 * Usage examples:
aschiffler@6711
   242
 * RandomSint8BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20
aschiffler@6711
   243
 * RandomSint8BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9
aschiffler@6711
   244
 * RandomSint8BoundaryValue(-128, 99, SDL_FALSE) returns 100
aschiffler@6711
   245
 * RandomSint8BoundaryValue(-128, 127, SDL_FALSE) returns SINT8_MIN (== error value)
aschiffler@6711
   246
 *
aschiffler@6711
   247
 * \param boundary1 Lower boundary limit
aschiffler@6711
   248
 * \param boundary2 Upper boundary limit
aschiffler@6711
   249
 * \param validDomain Should the generated boundary be valid or not?
aschiffler@6711
   250
 *
aschiffler@6711
   251
 * \returns Boundary value in given range or error value (-1)
aschiffler@6711
   252
 */
aschiffler@6711
   253
Sint8 SDLTest_RandomSint8BoundaryValue(Sint8 boundary1, Sint8 boundary2, SDL_bool validDomain);
aschiffler@6711
   254
aschiffler@6711
   255
aschiffler@6711
   256
/**
aschiffler@6711
   257
 * Returns a random boundary value for Sint16 within the given boundaries.
aschiffler@6711
   258
 * Boundaries are inclusive, see the usage examples below. If validDomain
aschiffler@6711
   259
 * is true, the function will only return valid boundaries, otherwise non-valid
aschiffler@6711
   260
 * boundaries are also possible.
aschiffler@6711
   261
 * If boundary1 > boundary2, the values are swapped
aschiffler@6711
   262
 *
aschiffler@6711
   263
 * Usage examples:
aschiffler@6711
   264
 * RandomSint16BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20
aschiffler@6711
   265
 * RandomSint16BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9
aschiffler@6711
   266
 * RandomSint16BoundaryValue(SINT8_MIN, 99, SDL_FALSE) returns 100
aschiffler@6711
   267
 * RandomSint16BoundaryValue(SINT8_MIN, SINT8_MAX, SDL_FALSE) returns SINT16_MIN (== error value)
aschiffler@6711
   268
 *
aschiffler@6711
   269
 * \param boundary1 Lower boundary limit
aschiffler@6711
   270
 * \param boundary2 Upper boundary limit
aschiffler@6711
   271
 * \param validDomain Should the generated boundary be valid or not?
aschiffler@6711
   272
 *
aschiffler@6711
   273
 * \returns Boundary value in given range or error value (-1)
aschiffler@6711
   274
 */
aschiffler@6711
   275
Sint16 SDLTest_RandomSint16BoundaryValue(Sint16 boundary1, Sint16 boundary2, SDL_bool validDomain);
aschiffler@6711
   276
aschiffler@6711
   277
/**
aschiffler@6711
   278
 * Returns a random boundary value for Sint32 within the given boundaries.
aschiffler@6711
   279
 * Boundaries are inclusive, see the usage examples below. If validDomain
aschiffler@6711
   280
 * is true, the function will only return valid boundaries, otherwise non-valid
aschiffler@6711
   281
 * boundaries are also possible.
aschiffler@6711
   282
 * If boundary1 > boundary2, the values are swapped
aschiffler@6711
   283
 *
aschiffler@6711
   284
 * Usage examples:
aschiffler@6711
   285
 * RandomSint32BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20
aschiffler@6711
   286
 * RandomSint32BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9
aschiffler@6711
   287
 * RandomSint32BoundaryValue(SINT32_MIN, 99, SDL_FALSE) returns 100
aschiffler@6711
   288
 * RandomSint32BoundaryValue(SINT32_MIN, SINT32_MAX, SDL_FALSE) returns SINT32_MIN (== error value)
aschiffler@6711
   289
 *
aschiffler@6711
   290
 * \param boundary1 Lower boundary limit
aschiffler@6711
   291
 * \param boundary2 Upper boundary limit
aschiffler@6711
   292
 * \param validDomain Should the generated boundary be valid or not?
aschiffler@6711
   293
 *
aschiffler@6711
   294
 * \returns Boundary value in given range or error value (-1)
aschiffler@6711
   295
 */
aschiffler@6711
   296
Sint32 SDLTest_RandomSint32BoundaryValue(Sint32 boundary1, Sint32 boundary2, SDL_bool validDomain);
aschiffler@6711
   297
aschiffler@6711
   298
/**
aschiffler@6711
   299
 * Returns a random boundary value for Sint64 within the given boundaries.
aschiffler@6711
   300
 * Boundaries are inclusive, see the usage examples below. If validDomain
aschiffler@6711
   301
 * is true, the function will only return valid boundaries, otherwise non-valid
aschiffler@6711
   302
 * boundaries are also possible.
aschiffler@6711
   303
 * If boundary1 > boundary2, the values are swapped
aschiffler@6711
   304
 *
aschiffler@6711
   305
 * Usage examples:
aschiffler@6711
   306
 * RandomSint64BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20
aschiffler@6711
   307
 * RandomSint64BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9
aschiffler@6711
   308
 * RandomSint64BoundaryValue(SINT64_MIN, 99, SDL_FALSE) returns 100
aschiffler@6711
   309
 * RandomSint64BoundaryValue(SINT64_MIN, SINT32_MAX, SDL_FALSE) returns SINT64_MIN (== error value)
aschiffler@6711
   310
 *
aschiffler@6711
   311
 * \param boundary1 Lower boundary limit
aschiffler@6711
   312
 * \param boundary2 Upper boundary limit
aschiffler@6711
   313
 * \param validDomain Should the generated boundary be valid or not?
aschiffler@6711
   314
 *
aschiffler@6711
   315
 * \returns Boundary value in given range or error value (-1)
aschiffler@6711
   316
 */
aschiffler@6711
   317
Sint64 SDLTest_RandomSint64BoundaryValue(Sint64 boundary1, Sint64 boundary2, SDL_bool validDomain);
aschiffler@6711
   318
aschiffler@6711
   319
aschiffler@6711
   320
/**
aschiffler@6711
   321
 * Returns integer in range [min, max] (inclusive).
aschiffler@6711
   322
 * Min and max values can be negative values.
aschiffler@6711
   323
 * If Max in smaller tham min, then the values are swapped.
aschiffler@6711
   324
 * Min and max are the same value, that value will be returned.
aschiffler@6711
   325
 *
aschiffler@6711
   326
 * \returns Generated integer
aschiffler@6711
   327
 */
aschiffler@6711
   328
Sint32 SDLTest_RandomIntegerInRange(Sint32 min, Sint32 max);
aschiffler@6711
   329
aschiffler@6711
   330
aschiffler@6711
   331
/**
aschiffler@6811
   332
 * Generates random null-terminated string. The minimum length for
aschiffler@6811
   333
 * the string is 1 character, maximum length for the string is 255 
aschiffler@6811
   334
 * characters and it can contain ASCII characters from 32 to 126.
aschiffler@6711
   335
 *
aschiffler@6711
   336
 * Note: Returned string needs to be deallocated.
aschiffler@6711
   337
 *
aschiffler@6811
   338
 * \returns Newly allocated random string; or NULL if length was invalid or string could not be allocated.
aschiffler@6711
   339
 */
aschiffler@6711
   340
char * SDLTest_RandomAsciiString();
aschiffler@6711
   341
aschiffler@6711
   342
aschiffler@6711
   343
/**
aschiffler@6711
   344
 * Generates random null-terminated string. The maximum length for
aschiffler@6811
   345
 * the string is defined by the maxLength parameter.
aschiffler@6811
   346
 * String can contain ASCII characters from 32 to 126.
aschiffler@6711
   347
 *
aschiffler@6711
   348
 * Note: Returned string needs to be deallocated.
aschiffler@6711
   349
 *
aschiffler@6811
   350
 * \param maxLength The maximum length of the generated string.
aschiffler@6711
   351
 *
aschiffler@6811
   352
 * \returns Newly allocated random string; or NULL if maxLength was invalid or string could not be allocated. 
aschiffler@6711
   353
 */
aschiffler@6711
   354
char * SDLTest_RandomAsciiStringWithMaximumLength(int maxLength);
aschiffler@6711
   355
aschiffler@6811
   356
aschiffler@6811
   357
/**
aschiffler@6811
   358
 * Generates random null-terminated string. The length for
aschiffler@6811
   359
 * the string is defined by the size parameter.
aschiffler@6811
   360
 * String can contain ASCII characters from 32 to 126.
aschiffler@6811
   361
 *
aschiffler@6811
   362
 * Note: Returned string needs to be deallocated.
aschiffler@6811
   363
 *
aschiffler@6811
   364
 * \param size The length of the generated string
aschiffler@6811
   365
 *
aschiffler@6811
   366
 * \returns Newly allocated random string; or NULL if size was invalid or string could not be allocated.
aschiffler@6811
   367
 */
aschiffler@6811
   368
char * SDLTest_RandomAsciiStringOfSize(int size);
aschiffler@6811
   369
aschiffler@6711
   370
/**
aschiffler@6711
   371
 * Returns the invocation count for the fuzzer since last ...FuzzerInit.
aschiffler@6711
   372
 */
aschiffler@6711
   373
int SDLTest_GetFuzzerInvocationCount();
aschiffler@6711
   374
aschiffler@6711
   375
/* Ends C function definitions when using C++ */
aschiffler@6711
   376
#ifdef __cplusplus
aschiffler@6711
   377
/* *INDENT-OFF* */
aschiffler@6711
   378
}
aschiffler@6711
   379
/* *INDENT-ON* */
aschiffler@6711
   380
#endif
aschiffler@6711
   381
#include "close_code.h"
aschiffler@6711
   382
aschiffler@6711
   383
#endif /* _SDL_test_fuzzer_h */
aschiffler@6711
   384
aschiffler@6711
   385
/* vi: set ts=4 sw=4 expandtab: */