test/testautomation_sdltest.c
author David Ludwig <dludwig@pobox.com>
Wed, 25 Dec 2013 21:39:48 -0500
changeset 8563 c0e68f3b6bbb
parent 7721 bdf8c2c84e14
child 8605 57faccca4fab
permissions -rw-r--r--
WinRT: compiled the d3d11 renderer's shaders into SDL itself

Previously, the shaders would get compiled separately, the output of which would need to be packaged into the app. This change should make SDL's dll be the only binary needed to include SDL in a WinRT app.
aschiffler@6839
     1
/**
aschiffler@6839
     2
 * SDL_test test suite
aschiffler@6839
     3
 */
aschiffler@6839
     4
aschiffler@7172
     5
/* Visual Studio 2008 doesn't have stdint.h */
aschiffler@7172
     6
#if defined(_MSC_VER) && _MSC_VER <= 1500
aschiffler@7172
     7
#define UINT8_MAX   ~(Uint8)0
aschiffler@7172
     8
#define UINT16_MAX  ~(Uint16)0
aschiffler@7172
     9
#define UINT32_MAX  ~(Uint32)0
aschiffler@7172
    10
#define UINT64_MAX  ~(Uint64)0
aschiffler@7172
    11
#else
aschiffler@7172
    12
#include <stdint.h>
aschiffler@7172
    13
#endif
aschiffler@6839
    14
#include <stdio.h>
aschiffler@6839
    15
#include <limits.h>
aschiffler@6839
    16
#include <float.h>
aschiffler@6875
    17
#include <ctype.h>
aschiffler@6839
    18
aschiffler@6839
    19
#include "SDL.h"
aschiffler@6839
    20
#include "SDL_test.h"
aschiffler@6839
    21
aschiffler@6839
    22
/* Test case functions */
aschiffler@6839
    23
aschiffler@6839
    24
/**
aschiffler@6839
    25
 * @brief Calls to SDLTest_GetFuzzerInvocationCount()
aschiffler@6839
    26
 */
aschiffler@6839
    27
int
aschiffler@6839
    28
sdltest_getFuzzerInvocationCount(void *arg)
aschiffler@6839
    29
{
aschiffler@6839
    30
  Uint8 result;
aschiffler@6839
    31
  int fuzzerCount1, fuzzerCount2;
slouken@7191
    32
aschiffler@6839
    33
  fuzzerCount1 = SDLTest_GetFuzzerInvocationCount();
aschiffler@6839
    34
  SDLTest_AssertPass("Call to SDLTest_GetFuzzerInvocationCount()");
aschiffler@6839
    35
  SDLTest_AssertCheck(fuzzerCount1 >= 0, "Verify returned value, expected: >=0, got: %d", fuzzerCount1);
slouken@7191
    36
aschiffler@6839
    37
  result = SDLTest_RandomUint8();
aschiffler@6839
    38
  SDLTest_AssertPass("Call to SDLTest_RandomUint8(), returned %d", result);
aschiffler@6839
    39
aschiffler@6839
    40
  fuzzerCount2 = SDLTest_GetFuzzerInvocationCount();
aschiffler@6839
    41
  SDLTest_AssertPass("Call to SDLTest_GetFuzzerInvocationCount()");
aschiffler@6839
    42
  SDLTest_AssertCheck(fuzzerCount2 > fuzzerCount1, "Verify returned value, expected: >%d, got: %d", fuzzerCount1, fuzzerCount2);
slouken@7191
    43
aschiffler@6839
    44
  return TEST_COMPLETED;
aschiffler@6839
    45
}
aschiffler@6839
    46
aschiffler@6839
    47
aschiffler@6839
    48
/**
aschiffler@6839
    49
 * @brief Calls to random number generators
aschiffler@6839
    50
 */
aschiffler@6839
    51
int
aschiffler@6839
    52
sdltest_randomNumber(void *arg)
aschiffler@6839
    53
{
aschiffler@6839
    54
  Sint64 result;
aschiffler@6839
    55
  Uint64 uresult;
aschiffler@6839
    56
  double dresult;
aschiffler@6839
    57
  Uint64 umax;
aschiffler@6839
    58
  Sint64 min, max;
slouken@7191
    59
aschiffler@6839
    60
  result = (Sint64)SDLTest_RandomUint8();
aschiffler@6839
    61
  umax = (1 << 8) - 1;
aschiffler@6839
    62
  SDLTest_AssertPass("Call to SDLTest_RandomUint8");
aschiffler@6872
    63
  SDLTest_AssertCheck(result >= 0 && result <= (Sint64)umax, "Verify result value, expected: [0,%llu], got: %lld", umax, result);
aschiffler@6839
    64
aschiffler@6839
    65
  result = (Sint64)SDLTest_RandomSint8();
aschiffler@7614
    66
  min = 0 - (1 << 7);
aschiffler@6839
    67
  max =     (1 << 7) - 1;
aschiffler@6839
    68
  SDLTest_AssertPass("Call to SDLTest_RandomSint8");
aschiffler@6839
    69
  SDLTest_AssertCheck(result >= min && result <= max, "Verify result value, expected: [%lld,%lld], got: %lld", min, max, result);
slouken@7191
    70
aschiffler@6839
    71
  result = (Sint64)SDLTest_RandomUint16();
aschiffler@6839
    72
  umax = (1 << 16) - 1;
aschiffler@6839
    73
  SDLTest_AssertPass("Call to SDLTest_RandomUint16");
aschiffler@6872
    74
  SDLTest_AssertCheck(result >= 0 && result <= (Sint64)umax, "Verify result value, expected: [0,%llu], got: %lld", umax, result);
aschiffler@6839
    75
aschiffler@6839
    76
  result = (Sint64)SDLTest_RandomSint16();
aschiffler@7614
    77
  min = 0 - (1 << 15);
aschiffler@6839
    78
  max =     (1 << 15) - 1;
aschiffler@6839
    79
  SDLTest_AssertPass("Call to SDLTest_RandomSint16");
aschiffler@6839
    80
  SDLTest_AssertCheck(result >= min && result <= max, "Verify result value, expected: [%lld,%lld], got: %lld", min, max, result);
aschiffler@6839
    81
aschiffler@6839
    82
  result = (Sint64)SDLTest_RandomUint32();
aschiffler@6839
    83
  umax = ((Uint64)1 << 32) - 1;
aschiffler@6839
    84
  SDLTest_AssertPass("Call to SDLTest_RandomUint32");
aschiffler@6872
    85
  SDLTest_AssertCheck(result >= 0 && result <= (Sint64)umax, "Verify result value, expected: [0,%llu], got: %lld", umax, result);
aschiffler@6839
    86
aschiffler@6839
    87
  result = (Sint64)SDLTest_RandomSint32();
aschiffler@7614
    88
  min = 0 - ((Sint64)1 << 31);
aschiffler@6839
    89
  max =     ((Sint64)1 << 31) - 1;
aschiffler@6839
    90
  SDLTest_AssertPass("Call to SDLTest_RandomSint32");
aschiffler@6839
    91
  SDLTest_AssertCheck(result >= min && result <= max, "Verify result value, expected: [%lld,%lld], got: %lld", min, max, result);
aschiffler@6839
    92
aschiffler@6839
    93
  uresult = SDLTest_RandomUint64();
aschiffler@6839
    94
  SDLTest_AssertPass("Call to SDLTest_RandomUint64");
aschiffler@6839
    95
aschiffler@6839
    96
  result = SDLTest_RandomSint64();
aschiffler@6839
    97
  SDLTest_AssertPass("Call to SDLTest_RandomSint64");
aschiffler@6839
    98
aschiffler@6839
    99
  dresult = (double)SDLTest_RandomUnitFloat();
aschiffler@6839
   100
  SDLTest_AssertPass("Call to SDLTest_RandomUnitFloat");
aschiffler@6839
   101
  SDLTest_AssertCheck(dresult >= 0.0 && dresult < 1.0, "Verify result value, expected: [0.0,1.0[, got: %e", dresult);
slouken@7191
   102
aschiffler@6839
   103
  dresult = (double)SDLTest_RandomFloat();
aschiffler@6839
   104
  SDLTest_AssertPass("Call to SDLTest_RandomFloat");
aschiffler@6839
   105
  SDLTest_AssertCheck(dresult >= (double)(-FLT_MAX) && dresult <= (double)FLT_MAX, "Verify result value, expected: [%e,%e], got: %e", (double)(-FLT_MAX), (double)FLT_MAX, dresult);
aschiffler@6839
   106
aschiffler@6839
   107
  dresult = (double)SDLTest_RandomUnitDouble();
aschiffler@6839
   108
  SDLTest_AssertPass("Call to SDLTest_RandomUnitDouble");
aschiffler@6839
   109
  SDLTest_AssertCheck(dresult >= 0.0 && dresult < 1.0, "Verify result value, expected: [0.0,1.0[, got: %e", dresult);
aschiffler@6839
   110
aschiffler@6839
   111
  dresult = SDLTest_RandomDouble();
aschiffler@6839
   112
  SDLTest_AssertPass("Call to SDLTest_RandomDouble");
slouken@7191
   113
aschiffler@6839
   114
  return TEST_COMPLETED;
aschiffler@6839
   115
}
aschiffler@6839
   116
aschiffler@6872
   117
/*
aschiffler@6872
   118
 * @brief Calls to random boundary number generators for Uint8
aschiffler@6872
   119
 */
aschiffler@6872
   120
int
aschiffler@6872
   121
sdltest_randomBoundaryNumberUint8(void *arg)
aschiffler@6872
   122
{
aschiffler@6872
   123
  const char *expectedError = "That operation is not supported";
aschiffler@6872
   124
  char *lastError;
aschiffler@6872
   125
  Uint64 uresult;
aschiffler@6872
   126
aschiffler@6872
   127
  /* Clean error messages */
aschiffler@6872
   128
  SDL_ClearError();
aschiffler@6872
   129
  SDLTest_AssertPass("SDL_ClearError()");
aschiffler@6872
   130
aschiffler@6872
   131
  /* RandomUintXBoundaryValue(10, 10, SDL_TRUE) returns 10 */
aschiffler@6872
   132
  uresult = (Uint64)SDLTest_RandomUint8BoundaryValue(10, 10, SDL_TRUE);
aschiffler@6872
   133
  SDLTest_AssertPass("Call to SDLTest_RandomUint8BoundaryValue");
aschiffler@6872
   134
  SDLTest_AssertCheck(
aschiffler@6872
   135
    uresult == 10,
slouken@7191
   136
    "Validate result value for parameters (10,10,SDL_TRUE); expected: 10, got: %lld", uresult);
aschiffler@6872
   137
aschiffler@6872
   138
  /* RandomUintXBoundaryValue(10, 11, SDL_TRUE) returns 10, 11 */
aschiffler@6872
   139
  uresult = (Uint64)SDLTest_RandomUint8BoundaryValue(10, 11, SDL_TRUE);
aschiffler@6872
   140
  SDLTest_AssertPass("Call to SDLTest_RandomUint8BoundaryValue");
aschiffler@6872
   141
  SDLTest_AssertCheck(
aschiffler@6872
   142
    uresult == 10 || uresult == 11,
slouken@7191
   143
    "Validate result value for parameters (10,11,SDL_TRUE); expected: 10|11, got: %lld", uresult);
aschiffler@6872
   144
aschiffler@6872
   145
  /* RandomUintXBoundaryValue(10, 12, SDL_TRUE) returns 10, 11, 12 */
aschiffler@6872
   146
  uresult = (Uint64)SDLTest_RandomUint8BoundaryValue(10, 12, SDL_TRUE);
aschiffler@6872
   147
  SDLTest_AssertPass("Call to SDLTest_RandomUint8BoundaryValue");
aschiffler@6872
   148
  SDLTest_AssertCheck(
aschiffler@6872
   149
    uresult == 10 || uresult == 11 || uresult == 12,
slouken@7191
   150
    "Validate result value for parameters (10,12,SDL_TRUE); expected: 10|11|12, got: %lld", uresult);
aschiffler@6872
   151
aschiffler@6872
   152
  /* RandomUintXBoundaryValue(10, 13, SDL_TRUE) returns 10, 11, 12, 13 */
aschiffler@6872
   153
  uresult = (Uint64)SDLTest_RandomUint8BoundaryValue(10, 13, SDL_TRUE);
aschiffler@6872
   154
  SDLTest_AssertPass("Call to SDLTest_RandomUint8BoundaryValue");
aschiffler@6872
   155
  SDLTest_AssertCheck(
aschiffler@6872
   156
    uresult == 10 || uresult == 11 || uresult == 12 || uresult == 13,
slouken@7191
   157
    "Validate result value for parameters (10,13,SDL_TRUE); expected: 10|11|12|13, got: %lld", uresult);
aschiffler@6872
   158
aschiffler@6872
   159
  /* RandomUintXBoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 */
aschiffler@6872
   160
  uresult = (Uint64)SDLTest_RandomUint8BoundaryValue(10, 20, SDL_TRUE);
aschiffler@6872
   161
  SDLTest_AssertPass("Call to SDLTest_RandomUint8BoundaryValue");
aschiffler@6872
   162
  SDLTest_AssertCheck(
aschiffler@6872
   163
    uresult == 10 || uresult == 11 || uresult == 19 || uresult == 20,
slouken@7191
   164
    "Validate result value for parameters (10,20,SDL_TRUE); expected: 10|11|19|20, got: %lld", uresult);
aschiffler@6872
   165
aschiffler@6872
   166
  /* RandomUintXBoundaryValue(20, 10, SDL_TRUE) returns 10, 11, 19 or 20 */
aschiffler@6872
   167
  uresult = (Uint64)SDLTest_RandomUint8BoundaryValue(20, 10, SDL_TRUE);
aschiffler@6872
   168
  SDLTest_AssertPass("Call to SDLTest_RandomUint8BoundaryValue");
aschiffler@6872
   169
  SDLTest_AssertCheck(
aschiffler@6872
   170
    uresult == 10 || uresult == 11 || uresult == 19 || uresult == 20,
slouken@7191
   171
    "Validate result value for parameters (20,10,SDL_TRUE); expected: 10|11|19|20, got: %lld", uresult);
aschiffler@6872
   172
aschiffler@6872
   173
  /* RandomUintXBoundaryValue(1, 20, SDL_FALSE) returns 0, 21 */
aschiffler@6872
   174
  uresult = (Uint64)SDLTest_RandomUint8BoundaryValue(1, 20, SDL_FALSE);
aschiffler@6872
   175
  SDLTest_AssertPass("Call to SDLTest_RandomUint8BoundaryValue");
aschiffler@6872
   176
  SDLTest_AssertCheck(
aschiffler@6872
   177
    uresult == 0 || uresult == 21,
slouken@7191
   178
    "Validate result value for parameters (1,20,SDL_FALSE); expected: 0|21, got: %lld", uresult);
slouken@7191
   179
aschiffler@6872
   180
  /* RandomUintXBoundaryValue(0, 99, SDL_FALSE) returns 100 */
aschiffler@6872
   181
  uresult = (Uint64)SDLTest_RandomUint8BoundaryValue(0, 99, SDL_FALSE);
aschiffler@6872
   182
  SDLTest_AssertPass("Call to SDLTest_RandomUint8BoundaryValue");
aschiffler@6872
   183
  SDLTest_AssertCheck(
aschiffler@6872
   184
    uresult == 100,
slouken@7191
   185
    "Validate result value for parameters (0,99,SDL_FALSE); expected: 100, got: %lld", uresult);
aschiffler@6872
   186
aschiffler@6872
   187
  /* RandomUintXBoundaryValue(1, 0xff, SDL_FALSE) returns 0 (no error) */
aschiffler@6872
   188
  uresult = (Uint64)SDLTest_RandomUint8BoundaryValue(1, 255, SDL_FALSE);
aschiffler@6872
   189
  SDLTest_AssertPass("Call to SDLTest_RandomUint8BoundaryValue");
aschiffler@6872
   190
  SDLTest_AssertCheck(
aschiffler@6872
   191
    uresult == 0,
aschiffler@6872
   192
    "Validate result value for parameters (1,255,SDL_FALSE); expected: 0, got: %lld", uresult);
aschiffler@6872
   193
  lastError = (char *)SDL_GetError();
aschiffler@6872
   194
  SDLTest_AssertPass("SDL_GetError()");
slouken@7721
   195
  SDLTest_AssertCheck(lastError == NULL || lastError[0] == '\0', "Validate no error message was set");
aschiffler@6872
   196
aschiffler@6872
   197
  /* RandomUintXBoundaryValue(0, 0xfe, SDL_FALSE) returns 0xff (no error) */
aschiffler@6872
   198
  uresult = (Uint64)SDLTest_RandomUint8BoundaryValue(0, 254, SDL_FALSE);
aschiffler@6872
   199
  SDLTest_AssertPass("Call to SDLTest_RandomUint8BoundaryValue");
aschiffler@6872
   200
  SDLTest_AssertCheck(
aschiffler@6872
   201
    uresult == 0xff,
aschiffler@6872
   202
    "Validate result value for parameters (0,254,SDL_FALSE); expected: 0xff, got: %lld", uresult);
aschiffler@6872
   203
  lastError = (char *)SDL_GetError();
aschiffler@6872
   204
  SDLTest_AssertPass("SDL_GetError()");
slouken@7721
   205
  SDLTest_AssertCheck(lastError == NULL || lastError[0] == '\0', "Validate no error message was set");
aschiffler@6872
   206
aschiffler@6872
   207
  /* RandomUintXBoundaryValue(0, 0xff, SDL_FALSE) returns 0 (sets error) */
aschiffler@6872
   208
  uresult = (Uint64)SDLTest_RandomUint8BoundaryValue(0, 255, SDL_FALSE);
aschiffler@6872
   209
  SDLTest_AssertPass("Call to SDLTest_RandomUint8BoundaryValue");
aschiffler@6872
   210
  SDLTest_AssertCheck(
aschiffler@6872
   211
    uresult == 0,
aschiffler@6872
   212
    "Validate result value for parameters(0,255,SDL_FALSE); expected: 0, got: %lld", uresult);
aschiffler@6872
   213
  lastError = (char *)SDL_GetError();
aschiffler@6872
   214
  SDLTest_AssertPass("SDL_GetError()");
aschiffler@6872
   215
  SDLTest_AssertCheck(lastError != NULL && SDL_strcmp(lastError, expectedError) == 0,
aschiffler@6872
   216
             "SDL_GetError(): expected message '%s', was message: '%s'",
aschiffler@6872
   217
             expectedError,
aschiffler@6872
   218
             lastError);
aschiffler@6872
   219
aschiffler@6872
   220
  /* Clear error messages */
aschiffler@6872
   221
  SDL_ClearError();
aschiffler@6872
   222
  SDLTest_AssertPass("SDL_ClearError()");
aschiffler@6872
   223
aschiffler@6872
   224
  return TEST_COMPLETED;
aschiffler@6872
   225
}
aschiffler@6872
   226
aschiffler@6872
   227
/*
aschiffler@6872
   228
 * @brief Calls to random boundary number generators for Uint16
aschiffler@6872
   229
 */
aschiffler@6872
   230
int
aschiffler@6872
   231
sdltest_randomBoundaryNumberUint16(void *arg)
aschiffler@6872
   232
{
aschiffler@6872
   233
  const char *expectedError = "That operation is not supported";
aschiffler@6872
   234
  char *lastError;
aschiffler@6872
   235
  Uint64 uresult;
aschiffler@6872
   236
aschiffler@6872
   237
  /* Clean error messages */
aschiffler@6872
   238
  SDL_ClearError();
aschiffler@6872
   239
  SDLTest_AssertPass("SDL_ClearError()");
aschiffler@6872
   240
aschiffler@6872
   241
  /* RandomUintXBoundaryValue(10, 10, SDL_TRUE) returns 10 */
aschiffler@6872
   242
  uresult = (Uint64)SDLTest_RandomUint16BoundaryValue(10, 10, SDL_TRUE);
aschiffler@6872
   243
  SDLTest_AssertPass("Call to SDLTest_RandomUint16BoundaryValue");
aschiffler@6872
   244
  SDLTest_AssertCheck(
aschiffler@6872
   245
    uresult == 10,
slouken@7191
   246
    "Validate result value for parameters (10,10,SDL_TRUE); expected: 10, got: %lld", uresult);
aschiffler@6872
   247
aschiffler@6872
   248
  /* RandomUintXBoundaryValue(10, 11, SDL_TRUE) returns 10, 11 */
aschiffler@6872
   249
  uresult = (Uint64)SDLTest_RandomUint16BoundaryValue(10, 11, SDL_TRUE);
aschiffler@6872
   250
  SDLTest_AssertPass("Call to SDLTest_RandomUint16BoundaryValue");
aschiffler@6872
   251
  SDLTest_AssertCheck(
aschiffler@6872
   252
    uresult == 10 || uresult == 11,
slouken@7191
   253
    "Validate result value for parameters (10,11,SDL_TRUE); expected: 10|11, got: %lld", uresult);
aschiffler@6872
   254
aschiffler@6872
   255
  /* RandomUintXBoundaryValue(10, 12, SDL_TRUE) returns 10, 11, 12 */
aschiffler@6872
   256
  uresult = (Uint64)SDLTest_RandomUint16BoundaryValue(10, 12, SDL_TRUE);
aschiffler@6872
   257
  SDLTest_AssertPass("Call to SDLTest_RandomUint16BoundaryValue");
aschiffler@6872
   258
  SDLTest_AssertCheck(
aschiffler@6872
   259
    uresult == 10 || uresult == 11 || uresult == 12,
slouken@7191
   260
    "Validate result value for parameters (10,12,SDL_TRUE); expected: 10|11|12, got: %lld", uresult);
aschiffler@6872
   261
aschiffler@6872
   262
  /* RandomUintXBoundaryValue(10, 13, SDL_TRUE) returns 10, 11, 12, 13 */
aschiffler@6872
   263
  uresult = (Uint64)SDLTest_RandomUint16BoundaryValue(10, 13, SDL_TRUE);
aschiffler@6872
   264
  SDLTest_AssertPass("Call to SDLTest_RandomUint16BoundaryValue");
aschiffler@6872
   265
  SDLTest_AssertCheck(
aschiffler@6872
   266
    uresult == 10 || uresult == 11 || uresult == 12 || uresult == 13,
slouken@7191
   267
    "Validate result value for parameters (10,13,SDL_TRUE); expected: 10|11|12|13, got: %lld", uresult);
aschiffler@6872
   268
aschiffler@6872
   269
  /* RandomUintXBoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 */
aschiffler@6872
   270
  uresult = (Uint64)SDLTest_RandomUint16BoundaryValue(10, 20, SDL_TRUE);
aschiffler@6872
   271
  SDLTest_AssertPass("Call to SDLTest_RandomUint16BoundaryValue");
aschiffler@6872
   272
  SDLTest_AssertCheck(
aschiffler@6872
   273
    uresult == 10 || uresult == 11 || uresult == 19 || uresult == 20,
slouken@7191
   274
    "Validate result value for parameters (10,20,SDL_TRUE); expected: 10|11|19|20, got: %lld", uresult);
aschiffler@6872
   275
aschiffler@6872
   276
  /* RandomUintXBoundaryValue(20, 10, SDL_TRUE) returns 10, 11, 19 or 20 */
aschiffler@6872
   277
  uresult = (Uint64)SDLTest_RandomUint16BoundaryValue(20, 10, SDL_TRUE);
aschiffler@6872
   278
  SDLTest_AssertPass("Call to SDLTest_RandomUint16BoundaryValue");
aschiffler@6872
   279
  SDLTest_AssertCheck(
aschiffler@6872
   280
    uresult == 10 || uresult == 11 || uresult == 19 || uresult == 20,
slouken@7191
   281
    "Validate result value for parameters (20,10,SDL_TRUE); expected: 10|11|19|20, got: %lld", uresult);
aschiffler@6872
   282
aschiffler@6872
   283
  /* RandomUintXBoundaryValue(1, 20, SDL_FALSE) returns 0, 21 */
aschiffler@6872
   284
  uresult = (Uint64)SDLTest_RandomUint16BoundaryValue(1, 20, SDL_FALSE);
aschiffler@6872
   285
  SDLTest_AssertPass("Call to SDLTest_RandomUint16BoundaryValue");
aschiffler@6872
   286
  SDLTest_AssertCheck(
aschiffler@6872
   287
    uresult == 0 || uresult == 21,
slouken@7191
   288
    "Validate result value for parameters (1,20,SDL_FALSE); expected: 0|21, got: %lld", uresult);
slouken@7191
   289
aschiffler@6872
   290
  /* RandomUintXBoundaryValue(0, 99, SDL_FALSE) returns 100 */
aschiffler@6872
   291
  uresult = (Uint64)SDLTest_RandomUint16BoundaryValue(0, 99, SDL_FALSE);
aschiffler@6872
   292
  SDLTest_AssertPass("Call to SDLTest_RandomUint16BoundaryValue");
aschiffler@6872
   293
  SDLTest_AssertCheck(
aschiffler@6872
   294
    uresult == 100,
slouken@7191
   295
    "Validate result value for parameters (0,99,SDL_FALSE); expected: 100, got: %lld", uresult);
aschiffler@6872
   296
aschiffler@6872
   297
  /* RandomUintXBoundaryValue(1, 0xffff, SDL_FALSE) returns 0 (no error) */
aschiffler@6872
   298
  uresult = (Uint64)SDLTest_RandomUint16BoundaryValue(1, 0xffff, SDL_FALSE);
aschiffler@6872
   299
  SDLTest_AssertPass("Call to SDLTest_RandomUint16BoundaryValue");
aschiffler@6872
   300
  SDLTest_AssertCheck(
aschiffler@6872
   301
    uresult == 0,
aschiffler@6872
   302
    "Validate result value for parameters (1,0xffff,SDL_FALSE); expected: 0, got: %lld", uresult);
aschiffler@6872
   303
  lastError = (char *)SDL_GetError();
aschiffler@6872
   304
  SDLTest_AssertPass("SDL_GetError()");
slouken@7721
   305
  SDLTest_AssertCheck(lastError == NULL || lastError[0] == '\0', "Validate no error message was set");
aschiffler@6872
   306
aschiffler@6872
   307
  /* RandomUintXBoundaryValue(0, 0xfffe, SDL_FALSE) returns 0xffff (no error) */
aschiffler@6872
   308
  uresult = (Uint64)SDLTest_RandomUint16BoundaryValue(0, 0xfffe, SDL_FALSE);
aschiffler@6872
   309
  SDLTest_AssertPass("Call to SDLTest_RandomUint16BoundaryValue");
aschiffler@6872
   310
  SDLTest_AssertCheck(
aschiffler@6872
   311
    uresult == 0xffff,
aschiffler@6872
   312
    "Validate result value for parameters (0,0xfffe,SDL_FALSE); expected: 0xffff, got: %lld", uresult);
aschiffler@6872
   313
  lastError = (char *)SDL_GetError();
aschiffler@6872
   314
  SDLTest_AssertPass("SDL_GetError()");
slouken@7721
   315
  SDLTest_AssertCheck(lastError == NULL || lastError[0] == '\0', "Validate no error message was set");
aschiffler@6872
   316
aschiffler@6872
   317
  /* RandomUintXBoundaryValue(0, 0xffff, SDL_FALSE) returns 0 (sets error) */
aschiffler@6872
   318
  uresult = (Uint64)SDLTest_RandomUint16BoundaryValue(0, 0xffff, SDL_FALSE);
aschiffler@6872
   319
  SDLTest_AssertPass("Call to SDLTest_RandomUint16BoundaryValue");
aschiffler@6872
   320
  SDLTest_AssertCheck(
aschiffler@6872
   321
    uresult == 0,
aschiffler@6872
   322
    "Validate result value for parameters(0,0xffff,SDL_FALSE); expected: 0, got: %lld", uresult);
aschiffler@6872
   323
  lastError = (char *)SDL_GetError();
aschiffler@6872
   324
  SDLTest_AssertPass("SDL_GetError()");
aschiffler@6872
   325
  SDLTest_AssertCheck(lastError != NULL && SDL_strcmp(lastError, expectedError) == 0,
aschiffler@6872
   326
             "SDL_GetError(): expected message '%s', was message: '%s'",
aschiffler@6872
   327
             expectedError,
aschiffler@6872
   328
             lastError);
aschiffler@6872
   329
aschiffler@6872
   330
  /* Clear error messages */
aschiffler@6872
   331
  SDL_ClearError();
aschiffler@6872
   332
  SDLTest_AssertPass("SDL_ClearError()");
aschiffler@6872
   333
aschiffler@6872
   334
  return TEST_COMPLETED;
aschiffler@6872
   335
}
slouken@7191
   336
aschiffler@6872
   337
/*
aschiffler@6872
   338
 * @brief Calls to random boundary number generators for Uint32
aschiffler@6872
   339
 */
aschiffler@6872
   340
int
aschiffler@6872
   341
sdltest_randomBoundaryNumberUint32(void *arg)
aschiffler@6872
   342
{
aschiffler@6872
   343
  const char *expectedError = "That operation is not supported";
aschiffler@6872
   344
  char *lastError;
aschiffler@6872
   345
  Uint64 uresult;
aschiffler@6872
   346
aschiffler@6872
   347
  /* Clean error messages */
aschiffler@6872
   348
  SDL_ClearError();
aschiffler@6872
   349
  SDLTest_AssertPass("SDL_ClearError()");
aschiffler@6872
   350
aschiffler@6872
   351
  /* RandomUintXBoundaryValue(10, 10, SDL_TRUE) returns 10 */
aschiffler@6872
   352
  uresult = (Uint64)SDLTest_RandomUint32BoundaryValue(10, 10, SDL_TRUE);
aschiffler@6872
   353
  SDLTest_AssertPass("Call to SDLTest_RandomUint32BoundaryValue");
aschiffler@6872
   354
  SDLTest_AssertCheck(
aschiffler@6872
   355
    uresult == 10,
slouken@7191
   356
    "Validate result value for parameters (10,10,SDL_TRUE); expected: 10, got: %lld", uresult);
aschiffler@6872
   357
aschiffler@6872
   358
  /* RandomUintXBoundaryValue(10, 11, SDL_TRUE) returns 10, 11 */
aschiffler@6872
   359
  uresult = (Uint64)SDLTest_RandomUint32BoundaryValue(10, 11, SDL_TRUE);
aschiffler@6872
   360
  SDLTest_AssertPass("Call to SDLTest_RandomUint32BoundaryValue");
aschiffler@6872
   361
  SDLTest_AssertCheck(
aschiffler@6872
   362
    uresult == 10 || uresult == 11,
slouken@7191
   363
    "Validate result value for parameters (10,11,SDL_TRUE); expected: 10|11, got: %lld", uresult);
aschiffler@6872
   364
aschiffler@6872
   365
  /* RandomUintXBoundaryValue(10, 12, SDL_TRUE) returns 10, 11, 12 */
aschiffler@6872
   366
  uresult = (Uint64)SDLTest_RandomUint32BoundaryValue(10, 12, SDL_TRUE);
aschiffler@6872
   367
  SDLTest_AssertPass("Call to SDLTest_RandomUint32BoundaryValue");
aschiffler@6872
   368
  SDLTest_AssertCheck(
aschiffler@6872
   369
    uresult == 10 || uresult == 11 || uresult == 12,
slouken@7191
   370
    "Validate result value for parameters (10,12,SDL_TRUE); expected: 10|11|12, got: %lld", uresult);
aschiffler@6872
   371
aschiffler@6872
   372
  /* RandomUintXBoundaryValue(10, 13, SDL_TRUE) returns 10, 11, 12, 13 */
aschiffler@6872
   373
  uresult = (Uint64)SDLTest_RandomUint32BoundaryValue(10, 13, SDL_TRUE);
aschiffler@6872
   374
  SDLTest_AssertPass("Call to SDLTest_RandomUint32BoundaryValue");
aschiffler@6872
   375
  SDLTest_AssertCheck(
aschiffler@6872
   376
    uresult == 10 || uresult == 11 || uresult == 12 || uresult == 13,
slouken@7191
   377
    "Validate result value for parameters (10,13,SDL_TRUE); expected: 10|11|12|13, got: %lld", uresult);
aschiffler@6872
   378
aschiffler@6872
   379
  /* RandomUintXBoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 */
aschiffler@6872
   380
  uresult = (Uint64)SDLTest_RandomUint32BoundaryValue(10, 20, SDL_TRUE);
aschiffler@6872
   381
  SDLTest_AssertPass("Call to SDLTest_RandomUint32BoundaryValue");
aschiffler@6872
   382
  SDLTest_AssertCheck(
aschiffler@6872
   383
    uresult == 10 || uresult == 11 || uresult == 19 || uresult == 20,
slouken@7191
   384
    "Validate result value for parameters (10,20,SDL_TRUE); expected: 10|11|19|20, got: %lld", uresult);
aschiffler@6872
   385
aschiffler@6872
   386
  /* RandomUintXBoundaryValue(20, 10, SDL_TRUE) returns 10, 11, 19 or 20 */
aschiffler@6872
   387
  uresult = (Uint64)SDLTest_RandomUint32BoundaryValue(20, 10, SDL_TRUE);
aschiffler@6872
   388
  SDLTest_AssertPass("Call to SDLTest_RandomUint32BoundaryValue");
aschiffler@6872
   389
  SDLTest_AssertCheck(
aschiffler@6872
   390
    uresult == 10 || uresult == 11 || uresult == 19 || uresult == 20,
slouken@7191
   391
    "Validate result value for parameters (20,10,SDL_TRUE); expected: 10|11|19|20, got: %lld", uresult);
aschiffler@6872
   392
aschiffler@6872
   393
  /* RandomUintXBoundaryValue(1, 20, SDL_FALSE) returns 0, 21 */
aschiffler@6872
   394
  uresult = (Uint64)SDLTest_RandomUint32BoundaryValue(1, 20, SDL_FALSE);
aschiffler@6872
   395
  SDLTest_AssertPass("Call to SDLTest_RandomUint32BoundaryValue");
aschiffler@6872
   396
  SDLTest_AssertCheck(
aschiffler@6872
   397
    uresult == 0 || uresult == 21,
slouken@7191
   398
    "Validate result value for parameters (1,20,SDL_FALSE); expected: 0|21, got: %lld", uresult);
slouken@7191
   399
aschiffler@6872
   400
  /* RandomUintXBoundaryValue(0, 99, SDL_FALSE) returns 100 */
aschiffler@6872
   401
  uresult = (Uint64)SDLTest_RandomUint32BoundaryValue(0, 99, SDL_FALSE);
aschiffler@6872
   402
  SDLTest_AssertPass("Call to SDLTest_RandomUint32BoundaryValue");
aschiffler@6872
   403
  SDLTest_AssertCheck(
aschiffler@6872
   404
    uresult == 100,
slouken@7191
   405
    "Validate result value for parameters (0,99,SDL_FALSE); expected: 100, got: %lld", uresult);
aschiffler@6872
   406
aschiffler@6872
   407
  /* RandomUintXBoundaryValue(1, 0xffffffff, SDL_FALSE) returns 0 (no error) */
aschiffler@6872
   408
  uresult = (Uint64)SDLTest_RandomUint32BoundaryValue(1, 0xffffffff, SDL_FALSE);
aschiffler@6872
   409
  SDLTest_AssertPass("Call to SDLTest_RandomUint32BoundaryValue");
aschiffler@6872
   410
  SDLTest_AssertCheck(
aschiffler@6872
   411
    uresult == 0,
aschiffler@6872
   412
    "Validate result value for parameters (1,0xffffffff,SDL_FALSE); expected: 0, got: %lld", uresult);
aschiffler@6872
   413
  lastError = (char *)SDL_GetError();
aschiffler@6872
   414
  SDLTest_AssertPass("SDL_GetError()");
slouken@7721
   415
  SDLTest_AssertCheck(lastError == NULL || lastError[0] == '\0', "Validate no error message was set");
aschiffler@6872
   416
aschiffler@6872
   417
  /* RandomUintXBoundaryValue(0, 0xfffffffe, SDL_FALSE) returns 0xffffffff (no error) */
aschiffler@6872
   418
  uresult = (Uint64)SDLTest_RandomUint32BoundaryValue(0, 0xfffffffe, SDL_FALSE);
aschiffler@6872
   419
  SDLTest_AssertPass("Call to SDLTest_RandomUint32BoundaryValue");
aschiffler@6872
   420
  SDLTest_AssertCheck(
aschiffler@6872
   421
    uresult == 0xffffffff,
aschiffler@6872
   422
    "Validate result value for parameters (0,0xfffffffe,SDL_FALSE); expected: 0xffffffff, got: %lld", uresult);
aschiffler@6872
   423
  lastError = (char *)SDL_GetError();
aschiffler@6872
   424
  SDLTest_AssertPass("SDL_GetError()");
slouken@7721
   425
  SDLTest_AssertCheck(lastError == NULL || lastError[0] == '\0', "Validate no error message was set");
aschiffler@6872
   426
aschiffler@6872
   427
  /* RandomUintXBoundaryValue(0, 0xffffffff, SDL_FALSE) returns 0 (sets error) */
aschiffler@6872
   428
  uresult = (Uint64)SDLTest_RandomUint32BoundaryValue(0, 0xffffffff, SDL_FALSE);
aschiffler@6872
   429
  SDLTest_AssertPass("Call to SDLTest_RandomUint32BoundaryValue");
aschiffler@6872
   430
  SDLTest_AssertCheck(
aschiffler@6872
   431
    uresult == 0,
aschiffler@6872
   432
    "Validate result value for parameters(0,0xffffffff,SDL_FALSE); expected: 0, got: %lld", uresult);
aschiffler@6872
   433
  lastError = (char *)SDL_GetError();
aschiffler@6872
   434
  SDLTest_AssertPass("SDL_GetError()");
aschiffler@6872
   435
  SDLTest_AssertCheck(lastError != NULL && SDL_strcmp(lastError, expectedError) == 0,
aschiffler@6872
   436
             "SDL_GetError(): expected message '%s', was message: '%s'",
aschiffler@6872
   437
             expectedError,
aschiffler@6872
   438
             lastError);
aschiffler@6872
   439
aschiffler@6872
   440
  /* Clear error messages */
aschiffler@6872
   441
  SDL_ClearError();
aschiffler@6872
   442
  SDLTest_AssertPass("SDL_ClearError()");
aschiffler@6872
   443
aschiffler@6872
   444
  return TEST_COMPLETED;
aschiffler@6872
   445
}
aschiffler@6872
   446
aschiffler@6872
   447
/*
aschiffler@6872
   448
 * @brief Calls to random boundary number generators for Uint64
aschiffler@6872
   449
 */
aschiffler@6872
   450
int
aschiffler@6872
   451
sdltest_randomBoundaryNumberUint64(void *arg)
aschiffler@6872
   452
{
aschiffler@6872
   453
  const char *expectedError = "That operation is not supported";
aschiffler@6872
   454
  char *lastError;
aschiffler@6872
   455
  Uint64 uresult;
aschiffler@6872
   456
aschiffler@6872
   457
  /* Clean error messages */
aschiffler@6872
   458
  SDL_ClearError();
aschiffler@6872
   459
  SDLTest_AssertPass("SDL_ClearError()");
aschiffler@6872
   460
aschiffler@6872
   461
  /* RandomUintXBoundaryValue(10, 10, SDL_TRUE) returns 10 */
aschiffler@6872
   462
  uresult = (Uint64)SDLTest_RandomUint64BoundaryValue(10, 10, SDL_TRUE);
aschiffler@6872
   463
  SDLTest_AssertPass("Call to SDLTest_RandomUint64BoundaryValue");
aschiffler@6872
   464
  SDLTest_AssertCheck(
aschiffler@6872
   465
    uresult == 10,
slouken@7191
   466
    "Validate result value for parameters (10,10,SDL_TRUE); expected: 10, got: %lld", uresult);
aschiffler@6872
   467
aschiffler@6872
   468
  /* RandomUintXBoundaryValue(10, 11, SDL_TRUE) returns 10, 11 */
aschiffler@6872
   469
  uresult = (Uint64)SDLTest_RandomUint64BoundaryValue(10, 11, SDL_TRUE);
aschiffler@6872
   470
  SDLTest_AssertPass("Call to SDLTest_RandomUint64BoundaryValue");
aschiffler@6872
   471
  SDLTest_AssertCheck(
aschiffler@6872
   472
    uresult == 10 || uresult == 11,
slouken@7191
   473
    "Validate result value for parameters (10,11,SDL_TRUE); expected: 10|11, got: %lld", uresult);
aschiffler@6872
   474
aschiffler@6872
   475
  /* RandomUintXBoundaryValue(10, 12, SDL_TRUE) returns 10, 11, 12 */
aschiffler@6872
   476
  uresult = (Uint64)SDLTest_RandomUint64BoundaryValue(10, 12, SDL_TRUE);
aschiffler@6872
   477
  SDLTest_AssertPass("Call to SDLTest_RandomUint64BoundaryValue");
aschiffler@6872
   478
  SDLTest_AssertCheck(
aschiffler@6872
   479
    uresult == 10 || uresult == 11 || uresult == 12,
slouken@7191
   480
    "Validate result value for parameters (10,12,SDL_TRUE); expected: 10|11|12, got: %lld", uresult);
aschiffler@6872
   481
aschiffler@6872
   482
  /* RandomUintXBoundaryValue(10, 13, SDL_TRUE) returns 10, 11, 12, 13 */
aschiffler@6872
   483
  uresult = (Uint64)SDLTest_RandomUint64BoundaryValue(10, 13, SDL_TRUE);
aschiffler@6872
   484
  SDLTest_AssertPass("Call to SDLTest_RandomUint64BoundaryValue");
aschiffler@6872
   485
  SDLTest_AssertCheck(
aschiffler@6872
   486
    uresult == 10 || uresult == 11 || uresult == 12 || uresult == 13,
slouken@7191
   487
    "Validate result value for parameters (10,13,SDL_TRUE); expected: 10|11|12|13, got: %lld", uresult);
aschiffler@6872
   488
aschiffler@6872
   489
  /* RandomUintXBoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 */
aschiffler@6872
   490
  uresult = (Uint64)SDLTest_RandomUint64BoundaryValue(10, 20, SDL_TRUE);
aschiffler@6872
   491
  SDLTest_AssertPass("Call to SDLTest_RandomUint64BoundaryValue");
aschiffler@6872
   492
  SDLTest_AssertCheck(
aschiffler@6872
   493
    uresult == 10 || uresult == 11 || uresult == 19 || uresult == 20,
slouken@7191
   494
    "Validate result value for parameters (10,20,SDL_TRUE); expected: 10|11|19|20, got: %lld", uresult);
aschiffler@6872
   495
aschiffler@6872
   496
  /* RandomUintXBoundaryValue(20, 10, SDL_TRUE) returns 10, 11, 19 or 20 */
aschiffler@6872
   497
  uresult = (Uint64)SDLTest_RandomUint64BoundaryValue(20, 10, SDL_TRUE);
aschiffler@6872
   498
  SDLTest_AssertPass("Call to SDLTest_RandomUint64BoundaryValue");
aschiffler@6872
   499
  SDLTest_AssertCheck(
aschiffler@6872
   500
    uresult == 10 || uresult == 11 || uresult == 19 || uresult == 20,
slouken@7191
   501
    "Validate result value for parameters (20,10,SDL_TRUE); expected: 10|11|19|20, got: %lld", uresult);
aschiffler@6872
   502
aschiffler@6872
   503
  /* RandomUintXBoundaryValue(1, 20, SDL_FALSE) returns 0, 21 */
aschiffler@6872
   504
  uresult = (Uint64)SDLTest_RandomUint64BoundaryValue(1, 20, SDL_FALSE);
aschiffler@6872
   505
  SDLTest_AssertPass("Call to SDLTest_RandomUint64BoundaryValue");
aschiffler@6872
   506
  SDLTest_AssertCheck(
aschiffler@6872
   507
    uresult == 0 || uresult == 21,
slouken@7191
   508
    "Validate result value for parameters (1,20,SDL_FALSE); expected: 0|21, got: %lld", uresult);
slouken@7191
   509
aschiffler@6872
   510
  /* RandomUintXBoundaryValue(0, 99, SDL_FALSE) returns 100 */
aschiffler@6872
   511
  uresult = (Uint64)SDLTest_RandomUint64BoundaryValue(0, 99, SDL_FALSE);
aschiffler@6872
   512
  SDLTest_AssertPass("Call to SDLTest_RandomUint64BoundaryValue");
aschiffler@6872
   513
  SDLTest_AssertCheck(
aschiffler@6872
   514
    uresult == 100,
slouken@7191
   515
    "Validate result value for parameters (0,99,SDL_FALSE); expected: 100, got: %lld", uresult);
aschiffler@6872
   516
aschiffler@6872
   517
  /* RandomUintXBoundaryValue(1, 0xffffffffffffffff, SDL_FALSE) returns 0 (no error) */
aschiffler@6872
   518
  uresult = (Uint64)SDLTest_RandomUint64BoundaryValue(1, (Uint64)0xffffffffffffffffULL, SDL_FALSE);
aschiffler@6872
   519
  SDLTest_AssertPass("Call to SDLTest_RandomUint64BoundaryValue");
aschiffler@6872
   520
  SDLTest_AssertCheck(
aschiffler@6872
   521
    uresult == 0,
aschiffler@6872
   522
    "Validate result value for parameters (1,0xffffffffffffffff,SDL_FALSE); expected: 0, got: %lld", uresult);
aschiffler@6872
   523
  lastError = (char *)SDL_GetError();
aschiffler@6872
   524
  SDLTest_AssertPass("SDL_GetError()");
slouken@7721
   525
  SDLTest_AssertCheck(lastError == NULL || lastError[0] == '\0', "Validate no error message was set");
aschiffler@6872
   526
aschiffler@6872
   527
  /* RandomUintXBoundaryValue(0, 0xfffffffffffffffe, SDL_FALSE) returns 0xffffffffffffffff (no error) */
aschiffler@6872
   528
  uresult = (Uint64)SDLTest_RandomUint64BoundaryValue(0, (Uint64)0xfffffffffffffffeULL, SDL_FALSE);
aschiffler@6872
   529
  SDLTest_AssertPass("Call to SDLTest_RandomUint64BoundaryValue");
aschiffler@6872
   530
  SDLTest_AssertCheck(
aschiffler@6872
   531
    uresult == (Uint64)0xffffffffffffffffULL,
aschiffler@6872
   532
    "Validate result value for parameters (0,0xfffffffffffffffe,SDL_FALSE); expected: 0xffffffffffffffff, got: %lld", uresult);
aschiffler@6872
   533
  lastError = (char *)SDL_GetError();
aschiffler@6872
   534
  SDLTest_AssertPass("SDL_GetError()");
slouken@7721
   535
  SDLTest_AssertCheck(lastError == NULL || lastError[0] == '\0', "Validate no error message was set");
aschiffler@6872
   536
aschiffler@6872
   537
  /* RandomUintXBoundaryValue(0, 0xffffffffffffffff, SDL_FALSE) returns 0 (sets error) */
aschiffler@6872
   538
  uresult = (Uint64)SDLTest_RandomUint64BoundaryValue(0, (Uint64)0xffffffffffffffffULL, SDL_FALSE);
aschiffler@6872
   539
  SDLTest_AssertPass("Call to SDLTest_RandomUint64BoundaryValue");
aschiffler@6872
   540
  SDLTest_AssertCheck(
aschiffler@6872
   541
    uresult == 0,
aschiffler@6872
   542
    "Validate result value for parameters(0,0xffffffffffffffff,SDL_FALSE); expected: 0, got: %lld", uresult);
aschiffler@6872
   543
  lastError = (char *)SDL_GetError();
aschiffler@6872
   544
  SDLTest_AssertPass("SDL_GetError()");
aschiffler@6872
   545
  SDLTest_AssertCheck(lastError != NULL && SDL_strcmp(lastError, expectedError) == 0,
aschiffler@6872
   546
             "SDL_GetError(): expected message '%s', was message: '%s'",
aschiffler@6872
   547
             expectedError,
aschiffler@6872
   548
             lastError);
aschiffler@6872
   549
aschiffler@6872
   550
  /* Clear error messages */
aschiffler@6872
   551
  SDL_ClearError();
aschiffler@6872
   552
  SDLTest_AssertPass("SDL_ClearError()");
aschiffler@6872
   553
aschiffler@6872
   554
  return TEST_COMPLETED;
aschiffler@6872
   555
}
aschiffler@6872
   556
aschiffler@6872
   557
/*
aschiffler@6872
   558
 * @brief Calls to random boundary number generators for Sint8
aschiffler@6872
   559
 */
aschiffler@6872
   560
int
aschiffler@6872
   561
sdltest_randomBoundaryNumberSint8(void *arg)
aschiffler@6872
   562
{
aschiffler@6872
   563
  const char *expectedError = "That operation is not supported";
aschiffler@6872
   564
  char *lastError;
aschiffler@6872
   565
  Sint64 sresult;
aschiffler@6872
   566
aschiffler@6872
   567
  /* Clean error messages */
aschiffler@6872
   568
  SDL_ClearError();
aschiffler@6872
   569
  SDLTest_AssertPass("SDL_ClearError()");
aschiffler@6872
   570
aschiffler@6872
   571
  /* RandomSintXBoundaryValue(10, 10, SDL_TRUE) returns 10 */
aschiffler@6872
   572
  sresult = (Sint64)SDLTest_RandomSint8BoundaryValue(10, 10, SDL_TRUE);
aschiffler@6872
   573
  SDLTest_AssertPass("Call to SDLTest_RandomSint8BoundaryValue");
aschiffler@6872
   574
  SDLTest_AssertCheck(
aschiffler@6872
   575
    sresult == 10,
slouken@7191
   576
    "Validate result value for parameters (10,10,SDL_TRUE); expected: 10, got: %lld", sresult);
aschiffler@6872
   577
aschiffler@6872
   578
  /* RandomSintXBoundaryValue(10, 11, SDL_TRUE) returns 10, 11 */
aschiffler@6872
   579
  sresult = (Sint64)SDLTest_RandomSint8BoundaryValue(10, 11, SDL_TRUE);
aschiffler@6872
   580
  SDLTest_AssertPass("Call to SDLTest_RandomSint8BoundaryValue");
aschiffler@6872
   581
  SDLTest_AssertCheck(
aschiffler@6872
   582
    sresult == 10 || sresult == 11,
slouken@7191
   583
    "Validate result value for parameters (10,11,SDL_TRUE); expected: 10|11, got: %lld", sresult);
aschiffler@6872
   584
aschiffler@6872
   585
  /* RandomSintXBoundaryValue(10, 12, SDL_TRUE) returns 10, 11, 12 */
aschiffler@6872
   586
  sresult = (Sint64)SDLTest_RandomSint8BoundaryValue(10, 12, SDL_TRUE);
aschiffler@6872
   587
  SDLTest_AssertPass("Call to SDLTest_RandomSint8BoundaryValue");
aschiffler@6872
   588
  SDLTest_AssertCheck(
aschiffler@6872
   589
    sresult == 10 || sresult == 11 || sresult == 12,
slouken@7191
   590
    "Validate result value for parameters (10,12,SDL_TRUE); expected: 10|11|12, got: %lld", sresult);
aschiffler@6872
   591
aschiffler@6872
   592
  /* RandomSintXBoundaryValue(10, 13, SDL_TRUE) returns 10, 11, 12, 13 */
aschiffler@6872
   593
  sresult = (Sint64)SDLTest_RandomSint8BoundaryValue(10, 13, SDL_TRUE);
aschiffler@6872
   594
  SDLTest_AssertPass("Call to SDLTest_RandomSint8BoundaryValue");
aschiffler@6872
   595
  SDLTest_AssertCheck(
aschiffler@6872
   596
    sresult == 10 || sresult == 11 || sresult == 12 || sresult == 13,
slouken@7191
   597
    "Validate result value for parameters (10,13,SDL_TRUE); expected: 10|11|12|13, got: %lld", sresult);
aschiffler@6872
   598
aschiffler@6872
   599
  /* RandomSintXBoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 */
aschiffler@6872
   600
  sresult = (Sint64)SDLTest_RandomSint8BoundaryValue(10, 20, SDL_TRUE);
aschiffler@6872
   601
  SDLTest_AssertPass("Call to SDLTest_RandomSint8BoundaryValue");
aschiffler@6872
   602
  SDLTest_AssertCheck(
aschiffler@6872
   603
    sresult == 10 || sresult == 11 || sresult == 19 || sresult == 20,
slouken@7191
   604
    "Validate result value for parameters (10,20,SDL_TRUE); expected: 10|11|19|20, got: %lld", sresult);
aschiffler@6872
   605
aschiffler@6872
   606
  /* RandomSintXBoundaryValue(20, 10, SDL_TRUE) returns 10, 11, 19 or 20 */
aschiffler@6872
   607
  sresult = (Sint64)SDLTest_RandomSint8BoundaryValue(20, 10, SDL_TRUE);
aschiffler@6872
   608
  SDLTest_AssertPass("Call to SDLTest_RandomSint8BoundaryValue");
aschiffler@6872
   609
  SDLTest_AssertCheck(
aschiffler@6872
   610
    sresult == 10 || sresult == 11 || sresult == 19 || sresult == 20,
slouken@7191
   611
    "Validate result value for parameters (20,10,SDL_TRUE); expected: 10|11|19|20, got: %lld", sresult);
aschiffler@6872
   612
aschiffler@6872
   613
  /* RandomSintXBoundaryValue(1, 20, SDL_FALSE) returns 0, 21 */
aschiffler@6872
   614
  sresult = (Sint64)SDLTest_RandomSint8BoundaryValue(1, 20, SDL_FALSE);
aschiffler@6872
   615
  SDLTest_AssertPass("Call to SDLTest_RandomSint8BoundaryValue");
aschiffler@6872
   616
  SDLTest_AssertCheck(
aschiffler@6872
   617
    sresult == 0 || sresult == 21,
slouken@7191
   618
    "Validate result value for parameters (1,20,SDL_FALSE); expected: 0|21, got: %lld", sresult);
slouken@7191
   619
aschiffler@6872
   620
  /* RandomSintXBoundaryValue(SCHAR_MIN, 99, SDL_FALSE) returns 100 */
aschiffler@6872
   621
  sresult = (Sint64)SDLTest_RandomSint8BoundaryValue(SCHAR_MIN, 99, SDL_FALSE);
aschiffler@6872
   622
  SDLTest_AssertPass("Call to SDLTest_RandomSint8BoundaryValue");
aschiffler@6872
   623
  SDLTest_AssertCheck(
aschiffler@6872
   624
    sresult == 100,
slouken@7191
   625
    "Validate result value for parameters (SCHAR_MIN,99,SDL_FALSE); expected: 100, got: %lld", sresult);
aschiffler@6872
   626
aschiffler@6872
   627
  /* RandomSintXBoundaryValue(SCHAR_MIN + 1, SCHAR_MAX, SDL_FALSE) returns SCHAR_MIN (no error) */
aschiffler@6872
   628
  sresult = (Sint64)SDLTest_RandomSint8BoundaryValue(SCHAR_MIN + 1, SCHAR_MAX, SDL_FALSE);
aschiffler@6872
   629
  SDLTest_AssertPass("Call to SDLTest_RandomSint8BoundaryValue");
aschiffler@6872
   630
  SDLTest_AssertCheck(
aschiffler@6872
   631
    sresult == SCHAR_MIN,
aschiffler@6872
   632
    "Validate result value for parameters (SCHAR_MIN + 1,SCHAR_MAX,SDL_FALSE); expected: %d, got: %lld", SCHAR_MIN, sresult);
aschiffler@6872
   633
  lastError = (char *)SDL_GetError();
aschiffler@6872
   634
  SDLTest_AssertPass("SDL_GetError()");
slouken@7721
   635
  SDLTest_AssertCheck(lastError == NULL || lastError[0] == '\0', "Validate no error message was set");
aschiffler@6872
   636
aschiffler@6872
   637
  /* RandomSintXBoundaryValue(SCHAR_MIN, SCHAR_MAX - 1, SDL_FALSE) returns SCHAR_MAX (no error) */
aschiffler@6872
   638
  sresult = (Sint64)SDLTest_RandomSint8BoundaryValue(SCHAR_MIN, SCHAR_MAX -1, SDL_FALSE);
aschiffler@6872
   639
  SDLTest_AssertPass("Call to SDLTest_RandomSint8BoundaryValue");
aschiffler@6872
   640
  SDLTest_AssertCheck(
aschiffler@6872
   641
    sresult == SCHAR_MAX,
aschiffler@6872
   642
    "Validate result value for parameters (SCHAR_MIN,SCHAR_MAX - 1,SDL_FALSE); expected: %d, got: %lld", SCHAR_MAX, sresult);
aschiffler@6872
   643
  lastError = (char *)SDL_GetError();
aschiffler@6872
   644
  SDLTest_AssertPass("SDL_GetError()");
slouken@7721
   645
  SDLTest_AssertCheck(lastError == NULL || lastError[0] == '\0', "Validate no error message was set");
aschiffler@6872
   646
aschiffler@6872
   647
  /* RandomSintXBoundaryValue(SCHAR_MIN, SCHAR_MAX, SDL_FALSE) returns SCHAR_MIN (sets error) */
aschiffler@6872
   648
  sresult = (Sint64)SDLTest_RandomSint8BoundaryValue(SCHAR_MIN, SCHAR_MAX, SDL_FALSE);
aschiffler@6872
   649
  SDLTest_AssertPass("Call to SDLTest_RandomSint8BoundaryValue");
aschiffler@6872
   650
  SDLTest_AssertCheck(
aschiffler@6872
   651
    sresult == SCHAR_MIN,
aschiffler@6872
   652
    "Validate result value for parameters(SCHAR_MIN,SCHAR_MAX,SDL_FALSE); expected: %d, got: %lld", SCHAR_MIN, sresult);
aschiffler@6872
   653
  lastError = (char *)SDL_GetError();
aschiffler@6872
   654
  SDLTest_AssertPass("SDL_GetError()");
aschiffler@6872
   655
  SDLTest_AssertCheck(lastError != NULL && SDL_strcmp(lastError, expectedError) == 0,
aschiffler@6872
   656
             "SDL_GetError(): expected message '%s', was message: '%s'",
aschiffler@6872
   657
             expectedError,
aschiffler@6872
   658
             lastError);
aschiffler@6872
   659
aschiffler@6872
   660
  /* Clear error messages */
aschiffler@6872
   661
  SDL_ClearError();
aschiffler@6872
   662
  SDLTest_AssertPass("SDL_ClearError()");
slouken@7191
   663
aschiffler@6872
   664
  return TEST_COMPLETED;
aschiffler@6872
   665
}
aschiffler@6872
   666
aschiffler@6872
   667
/*
aschiffler@6872
   668
 * @brief Calls to random boundary number generators for Sint16
aschiffler@6872
   669
 */
aschiffler@6872
   670
int
aschiffler@6872
   671
sdltest_randomBoundaryNumberSint16(void *arg)
aschiffler@6872
   672
{
aschiffler@6872
   673
  const char *expectedError = "That operation is not supported";
aschiffler@6872
   674
  char *lastError;
aschiffler@6872
   675
  Sint64 sresult;
aschiffler@6872
   676
aschiffler@6872
   677
  /* Clean error messages */
aschiffler@6872
   678
  SDL_ClearError();
aschiffler@6872
   679
  SDLTest_AssertPass("SDL_ClearError()");
aschiffler@6872
   680
aschiffler@6872
   681
  /* RandomSintXBoundaryValue(10, 10, SDL_TRUE) returns 10 */
aschiffler@6872
   682
  sresult = (Sint64)SDLTest_RandomSint16BoundaryValue(10, 10, SDL_TRUE);
aschiffler@6872
   683
  SDLTest_AssertPass("Call to SDLTest_RandomSint16BoundaryValue");
aschiffler@6872
   684
  SDLTest_AssertCheck(
aschiffler@6872
   685
    sresult == 10,
slouken@7191
   686
    "Validate result value for parameters (10,10,SDL_TRUE); expected: 10, got: %lld", sresult);
aschiffler@6872
   687
aschiffler@6872
   688
  /* RandomSintXBoundaryValue(10, 11, SDL_TRUE) returns 10, 11 */
aschiffler@6872
   689
  sresult = (Sint64)SDLTest_RandomSint16BoundaryValue(10, 11, SDL_TRUE);
aschiffler@6872
   690
  SDLTest_AssertPass("Call to SDLTest_RandomSint16BoundaryValue");
aschiffler@6872
   691
  SDLTest_AssertCheck(
aschiffler@6872
   692
    sresult == 10 || sresult == 11,
slouken@7191
   693
    "Validate result value for parameters (10,11,SDL_TRUE); expected: 10|11, got: %lld", sresult);
aschiffler@6872
   694
aschiffler@6872
   695
  /* RandomSintXBoundaryValue(10, 12, SDL_TRUE) returns 10, 11, 12 */
aschiffler@6872
   696
  sresult = (Sint64)SDLTest_RandomSint16BoundaryValue(10, 12, SDL_TRUE);
aschiffler@6872
   697
  SDLTest_AssertPass("Call to SDLTest_RandomSint16BoundaryValue");
aschiffler@6872
   698
  SDLTest_AssertCheck(
aschiffler@6872
   699
    sresult == 10 || sresult == 11 || sresult == 12,
slouken@7191
   700
    "Validate result value for parameters (10,12,SDL_TRUE); expected: 10|11|12, got: %lld", sresult);
aschiffler@6872
   701
aschiffler@6872
   702
  /* RandomSintXBoundaryValue(10, 13, SDL_TRUE) returns 10, 11, 12, 13 */
aschiffler@6872
   703
  sresult = (Sint64)SDLTest_RandomSint16BoundaryValue(10, 13, SDL_TRUE);
aschiffler@6872
   704
  SDLTest_AssertPass("Call to SDLTest_RandomSint16BoundaryValue");
aschiffler@6872
   705
  SDLTest_AssertCheck(
aschiffler@6872
   706
    sresult == 10 || sresult == 11 || sresult == 12 || sresult == 13,
slouken@7191
   707
    "Validate result value for parameters (10,13,SDL_TRUE); expected: 10|11|12|13, got: %lld", sresult);
aschiffler@6872
   708
aschiffler@6872
   709
  /* RandomSintXBoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 */
aschiffler@6872
   710
  sresult = (Sint64)SDLTest_RandomSint16BoundaryValue(10, 20, SDL_TRUE);
aschiffler@6872
   711
  SDLTest_AssertPass("Call to SDLTest_RandomSint16BoundaryValue");
aschiffler@6872
   712
  SDLTest_AssertCheck(
aschiffler@6872
   713
    sresult == 10 || sresult == 11 || sresult == 19 || sresult == 20,
slouken@7191
   714
    "Validate result value for parameters (10,20,SDL_TRUE); expected: 10|11|19|20, got: %lld", sresult);
aschiffler@6872
   715
aschiffler@6872
   716
  /* RandomSintXBoundaryValue(20, 10, SDL_TRUE) returns 10, 11, 19 or 20 */
aschiffler@6872
   717
  sresult = (Sint64)SDLTest_RandomSint16BoundaryValue(20, 10, SDL_TRUE);
aschiffler@6872
   718
  SDLTest_AssertPass("Call to SDLTest_RandomSint16BoundaryValue");
aschiffler@6872
   719
  SDLTest_AssertCheck(
aschiffler@6872
   720
    sresult == 10 || sresult == 11 || sresult == 19 || sresult == 20,
slouken@7191
   721
    "Validate result value for parameters (20,10,SDL_TRUE); expected: 10|11|19|20, got: %lld", sresult);
aschiffler@6872
   722
aschiffler@6872
   723
  /* RandomSintXBoundaryValue(1, 20, SDL_FALSE) returns 0, 21 */
aschiffler@6872
   724
  sresult = (Sint64)SDLTest_RandomSint16BoundaryValue(1, 20, SDL_FALSE);
aschiffler@6872
   725
  SDLTest_AssertPass("Call to SDLTest_RandomSint16BoundaryValue");
aschiffler@6872
   726
  SDLTest_AssertCheck(
aschiffler@6872
   727
    sresult == 0 || sresult == 21,
slouken@7191
   728
    "Validate result value for parameters (1,20,SDL_FALSE); expected: 0|21, got: %lld", sresult);
slouken@7191
   729
aschiffler@6872
   730
  /* RandomSintXBoundaryValue(SHRT_MIN, 99, SDL_FALSE) returns 100 */
aschiffler@6872
   731
  sresult = (Sint64)SDLTest_RandomSint16BoundaryValue(SHRT_MIN, 99, SDL_FALSE);
aschiffler@6872
   732
  SDLTest_AssertPass("Call to SDLTest_RandomSint16BoundaryValue");
aschiffler@6872
   733
  SDLTest_AssertCheck(
aschiffler@6872
   734
    sresult == 100,
slouken@7191
   735
    "Validate result value for parameters (SHRT_MIN,99,SDL_FALSE); expected: 100, got: %lld", sresult);
aschiffler@6872
   736
aschiffler@6872
   737
  /* RandomSintXBoundaryValue(SHRT_MIN + 1, SHRT_MAX, SDL_FALSE) returns SHRT_MIN (no error) */
aschiffler@6872
   738
  sresult = (Sint64)SDLTest_RandomSint16BoundaryValue(SHRT_MIN + 1, SHRT_MAX, SDL_FALSE);
aschiffler@6872
   739
  SDLTest_AssertPass("Call to SDLTest_RandomSint16BoundaryValue");
aschiffler@6872
   740
  SDLTest_AssertCheck(
aschiffler@6872
   741
    sresult == SHRT_MIN,
aschiffler@6872
   742
    "Validate result value for parameters (SHRT_MIN+1,SHRT_MAX,SDL_FALSE); expected: %d, got: %lld", SHRT_MIN, sresult);
aschiffler@6872
   743
  lastError = (char *)SDL_GetError();
aschiffler@6872
   744
  SDLTest_AssertPass("SDL_GetError()");
slouken@7721
   745
  SDLTest_AssertCheck(lastError == NULL || lastError[0] == '\0', "Validate no error message was set");
aschiffler@6872
   746
aschiffler@6872
   747
  /* RandomSintXBoundaryValue(SHRT_MIN, SHRT_MAX - 1, SDL_FALSE) returns SHRT_MAX (no error) */
aschiffler@6872
   748
  sresult = (Sint64)SDLTest_RandomSint16BoundaryValue(SHRT_MIN, SHRT_MAX - 1, SDL_FALSE);
aschiffler@6872
   749
  SDLTest_AssertPass("Call to SDLTest_RandomSint16BoundaryValue");
aschiffler@6872
   750
  SDLTest_AssertCheck(
aschiffler@6872
   751
    sresult == SHRT_MAX,
aschiffler@6872
   752
    "Validate result value for parameters (SHRT_MIN,SHRT_MAX - 1,SDL_FALSE); expected: %d, got: %lld", SHRT_MAX, sresult);
aschiffler@6872
   753
  lastError = (char *)SDL_GetError();
aschiffler@6872
   754
  SDLTest_AssertPass("SDL_GetError()");
slouken@7721
   755
  SDLTest_AssertCheck(lastError == NULL || lastError[0] == '\0', "Validate no error message was set");
aschiffler@6872
   756
aschiffler@6872
   757
  /* RandomSintXBoundaryValue(SHRT_MIN, SHRT_MAX, SDL_FALSE) returns 0 (sets error) */
aschiffler@6872
   758
  sresult = (Sint64)SDLTest_RandomSint16BoundaryValue(SHRT_MIN, SHRT_MAX, SDL_FALSE);
aschiffler@6872
   759
  SDLTest_AssertPass("Call to SDLTest_RandomSint16BoundaryValue");
aschiffler@6872
   760
  SDLTest_AssertCheck(
aschiffler@6872
   761
    sresult == SHRT_MIN,
aschiffler@6872
   762
    "Validate result value for parameters(SHRT_MIN,SHRT_MAX,SDL_FALSE); expected: %d, got: %lld", SHRT_MIN, sresult);
aschiffler@6872
   763
  lastError = (char *)SDL_GetError();
aschiffler@6872
   764
  SDLTest_AssertPass("SDL_GetError()");
aschiffler@6872
   765
  SDLTest_AssertCheck(lastError != NULL && SDL_strcmp(lastError, expectedError) == 0,
aschiffler@6872
   766
             "SDL_GetError(): expected message '%s', was message: '%s'",
aschiffler@6872
   767
             expectedError,
aschiffler@6872
   768
             lastError);
aschiffler@6872
   769
aschiffler@6872
   770
  /* Clear error messages */
aschiffler@6872
   771
  SDL_ClearError();
aschiffler@6872
   772
  SDLTest_AssertPass("SDL_ClearError()");
aschiffler@6872
   773
aschiffler@6872
   774
  return TEST_COMPLETED;
aschiffler@6872
   775
}
slouken@7191
   776
aschiffler@6872
   777
/*
aschiffler@6872
   778
 * @brief Calls to random boundary number generators for Sint32
aschiffler@6872
   779
 */
aschiffler@6872
   780
int
aschiffler@6872
   781
sdltest_randomBoundaryNumberSint32(void *arg)
aschiffler@6872
   782
{
aschiffler@6872
   783
  const char *expectedError = "That operation is not supported";
aschiffler@6872
   784
  char *lastError;
aschiffler@6872
   785
  Sint64 sresult;
aschiffler@7172
   786
#if ((ULONG_MAX) == (UINT_MAX))
slouken@7191
   787
  Sint32 long_min = LONG_MIN;
aschiffler@7172
   788
  Sint32 long_max = LONG_MAX;
aschiffler@7172
   789
#else
aschiffler@7172
   790
  Sint32 long_min = INT_MIN;
aschiffler@7172
   791
  Sint32 long_max = INT_MAX;
aschiffler@7172
   792
#endif
aschiffler@6872
   793
aschiffler@6872
   794
  /* Clean error messages */
aschiffler@6872
   795
  SDL_ClearError();
aschiffler@6872
   796
  SDLTest_AssertPass("SDL_ClearError()");
aschiffler@6872
   797
aschiffler@6872
   798
  /* RandomSintXBoundaryValue(10, 10, SDL_TRUE) returns 10 */
aschiffler@6872
   799
  sresult = (Sint64)SDLTest_RandomSint32BoundaryValue(10, 10, SDL_TRUE);
aschiffler@6872
   800
  SDLTest_AssertPass("Call to SDLTest_RandomSint32BoundaryValue");
aschiffler@6872
   801
  SDLTest_AssertCheck(
aschiffler@6872
   802
    sresult == 10,
slouken@7191
   803
    "Validate result value for parameters (10,10,SDL_TRUE); expected: 10, got: %lld", sresult);
aschiffler@6872
   804
aschiffler@6872
   805
  /* RandomSintXBoundaryValue(10, 11, SDL_TRUE) returns 10, 11 */
aschiffler@6872
   806
  sresult = (Sint64)SDLTest_RandomSint32BoundaryValue(10, 11, SDL_TRUE);
aschiffler@6872
   807
  SDLTest_AssertPass("Call to SDLTest_RandomSint32BoundaryValue");
aschiffler@6872
   808
  SDLTest_AssertCheck(
aschiffler@6872
   809
    sresult == 10 || sresult == 11,
slouken@7191
   810
    "Validate result value for parameters (10,11,SDL_TRUE); expected: 10|11, got: %lld", sresult);
aschiffler@6872
   811
aschiffler@6872
   812
  /* RandomSintXBoundaryValue(10, 12, SDL_TRUE) returns 10, 11, 12 */
aschiffler@6872
   813
  sresult = (Sint64)SDLTest_RandomSint32BoundaryValue(10, 12, SDL_TRUE);
aschiffler@6872
   814
  SDLTest_AssertPass("Call to SDLTest_RandomSint32BoundaryValue");
aschiffler@6872
   815
  SDLTest_AssertCheck(
aschiffler@6872
   816
    sresult == 10 || sresult == 11 || sresult == 12,
slouken@7191
   817
    "Validate result value for parameters (10,12,SDL_TRUE); expected: 10|11|12, got: %lld", sresult);
aschiffler@6872
   818
aschiffler@6872
   819
  /* RandomSintXBoundaryValue(10, 13, SDL_TRUE) returns 10, 11, 12, 13 */
aschiffler@6872
   820
  sresult = (Sint64)SDLTest_RandomSint32BoundaryValue(10, 13, SDL_TRUE);
aschiffler@6872
   821
  SDLTest_AssertPass("Call to SDLTest_RandomSint32BoundaryValue");
aschiffler@6872
   822
  SDLTest_AssertCheck(
aschiffler@6872
   823
    sresult == 10 || sresult == 11 || sresult == 12 || sresult == 13,
slouken@7191
   824
    "Validate result value for parameters (10,13,SDL_TRUE); expected: 10|11|12|13, got: %lld", sresult);
aschiffler@6872
   825
aschiffler@6872
   826
  /* RandomSintXBoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 */
aschiffler@6872
   827
  sresult = (Sint64)SDLTest_RandomSint32BoundaryValue(10, 20, SDL_TRUE);
aschiffler@6872
   828
  SDLTest_AssertPass("Call to SDLTest_RandomSint32BoundaryValue");
aschiffler@6872
   829
  SDLTest_AssertCheck(
aschiffler@6872
   830
    sresult == 10 || sresult == 11 || sresult == 19 || sresult == 20,
slouken@7191
   831
    "Validate result value for parameters (10,20,SDL_TRUE); expected: 10|11|19|20, got: %lld", sresult);
aschiffler@6872
   832
aschiffler@6872
   833
  /* RandomSintXBoundaryValue(20, 10, SDL_TRUE) returns 10, 11, 19 or 20 */
aschiffler@6872
   834
  sresult = (Sint64)SDLTest_RandomSint32BoundaryValue(20, 10, SDL_TRUE);
aschiffler@6872
   835
  SDLTest_AssertPass("Call to SDLTest_RandomSint32BoundaryValue");
aschiffler@6872
   836
  SDLTest_AssertCheck(
aschiffler@6872
   837
    sresult == 10 || sresult == 11 || sresult == 19 || sresult == 20,
slouken@7191
   838
    "Validate result value for parameters (20,10,SDL_TRUE); expected: 10|11|19|20, got: %lld", sresult);
aschiffler@6872
   839
aschiffler@6872
   840
  /* RandomSintXBoundaryValue(1, 20, SDL_FALSE) returns 0, 21 */
aschiffler@6872
   841
  sresult = (Sint64)SDLTest_RandomSint32BoundaryValue(1, 20, SDL_FALSE);
aschiffler@6872
   842
  SDLTest_AssertPass("Call to SDLTest_RandomSint32BoundaryValue");
aschiffler@6872
   843
  SDLTest_AssertCheck(
aschiffler@6872
   844
    sresult == 0 || sresult == 21,
slouken@7191
   845
    "Validate result value for parameters (1,20,SDL_FALSE); expected: 0|21, got: %lld", sresult);
slouken@7191
   846
aschiffler@6872
   847
  /* RandomSintXBoundaryValue(LONG_MIN, 99, SDL_FALSE) returns 100 */
aschiffler@7172
   848
  sresult = (Sint64)SDLTest_RandomSint32BoundaryValue(long_min, 99, SDL_FALSE);
aschiffler@6872
   849
  SDLTest_AssertPass("Call to SDLTest_RandomSint32BoundaryValue");
aschiffler@6872
   850
  SDLTest_AssertCheck(
aschiffler@6872
   851
    sresult == 100,
slouken@7191
   852
    "Validate result value for parameters (LONG_MIN,99,SDL_FALSE); expected: 100, got: %lld", sresult);
aschiffler@6872
   853
aschiffler@6872
   854
  /* RandomSintXBoundaryValue(LONG_MIN + 1, LONG_MAX, SDL_FALSE) returns LONG_MIN (no error) */
aschiffler@7172
   855
  sresult = (Sint64)SDLTest_RandomSint32BoundaryValue(long_min + 1, long_max, SDL_FALSE);
aschiffler@6872
   856
  SDLTest_AssertPass("Call to SDLTest_RandomSint32BoundaryValue");
aschiffler@6872
   857
  SDLTest_AssertCheck(
aschiffler@7172
   858
    sresult == long_min,
aschiffler@7172
   859
    "Validate result value for parameters (LONG_MIN+1,LONG_MAX,SDL_FALSE); expected: %d, got: %lld", long_min, sresult);
aschiffler@6872
   860
  lastError = (char *)SDL_GetError();
aschiffler@6872
   861
  SDLTest_AssertPass("SDL_GetError()");
slouken@7721
   862
  SDLTest_AssertCheck(lastError == NULL || lastError[0] == '\0', "Validate no error message was set");
aschiffler@6872
   863
aschiffler@6872
   864
  /* RandomSintXBoundaryValue(LONG_MIN, LONG_MAX - 1, SDL_FALSE) returns LONG_MAX (no error) */
aschiffler@7172
   865
  sresult = (Sint64)SDLTest_RandomSint32BoundaryValue(long_min, long_max - 1, SDL_FALSE);
aschiffler@6872
   866
  SDLTest_AssertPass("Call to SDLTest_RandomSint32BoundaryValue");
aschiffler@6872
   867
  SDLTest_AssertCheck(
aschiffler@7172
   868
    sresult == long_max,
aschiffler@7172
   869
    "Validate result value for parameters (LONG_MIN,LONG_MAX - 1,SDL_FALSE); expected: %d, got: %lld", long_max, sresult);
aschiffler@6872
   870
  lastError = (char *)SDL_GetError();
aschiffler@6872
   871
  SDLTest_AssertPass("SDL_GetError()");
slouken@7721
   872
  SDLTest_AssertCheck(lastError == NULL || lastError[0] == '\0', "Validate no error message was set");
aschiffler@6872
   873
aschiffler@6872
   874
  /* RandomSintXBoundaryValue(LONG_MIN, LONG_MAX, SDL_FALSE) returns 0 (sets error) */
aschiffler@7172
   875
  sresult = (Sint64)SDLTest_RandomSint32BoundaryValue(long_min, long_max, SDL_FALSE);
aschiffler@6872
   876
  SDLTest_AssertPass("Call to SDLTest_RandomSint32BoundaryValue");
aschiffler@6872
   877
  SDLTest_AssertCheck(
aschiffler@7172
   878
    sresult == long_min,
aschiffler@7172
   879
    "Validate result value for parameters(LONG_MIN,LONG_MAX,SDL_FALSE); expected: %d, got: %lld", long_min, sresult);
aschiffler@6872
   880
  lastError = (char *)SDL_GetError();
aschiffler@6872
   881
  SDLTest_AssertPass("SDL_GetError()");
aschiffler@6872
   882
  SDLTest_AssertCheck(lastError != NULL && SDL_strcmp(lastError, expectedError) == 0,
aschiffler@6872
   883
             "SDL_GetError(): expected message '%s', was message: '%s'",
aschiffler@6872
   884
             expectedError,
aschiffler@6872
   885
             lastError);
aschiffler@6872
   886
aschiffler@6872
   887
  /* Clear error messages */
aschiffler@6872
   888
  SDL_ClearError();
aschiffler@6872
   889
  SDLTest_AssertPass("SDL_ClearError()");
aschiffler@6872
   890
aschiffler@6872
   891
  return TEST_COMPLETED;
aschiffler@6872
   892
}
aschiffler@6872
   893
aschiffler@6872
   894
/*
aschiffler@6872
   895
 * @brief Calls to random boundary number generators for Sint64
aschiffler@6872
   896
 */
aschiffler@6872
   897
int
aschiffler@6872
   898
sdltest_randomBoundaryNumberSint64(void *arg)
aschiffler@6872
   899
{
aschiffler@6872
   900
  const char *expectedError = "That operation is not supported";
aschiffler@6872
   901
  char *lastError;
aschiffler@6872
   902
  Sint64 sresult;
aschiffler@6872
   903
aschiffler@6872
   904
  /* Clean error messages */
aschiffler@6872
   905
  SDL_ClearError();
aschiffler@6872
   906
  SDLTest_AssertPass("SDL_ClearError()");
aschiffler@6872
   907
aschiffler@6872
   908
  /* RandomSintXBoundaryValue(10, 10, SDL_TRUE) returns 10 */
aschiffler@6872
   909
  sresult = (Sint64)SDLTest_RandomSint64BoundaryValue(10, 10, SDL_TRUE);
aschiffler@6872
   910
  SDLTest_AssertPass("Call to SDLTest_RandomSint64BoundaryValue");
aschiffler@6872
   911
  SDLTest_AssertCheck(
aschiffler@6872
   912
    sresult == 10,
slouken@7191
   913
    "Validate result value for parameters (10,10,SDL_TRUE); expected: 10, got: %lld", sresult);
aschiffler@6872
   914
aschiffler@6872
   915
  /* RandomSintXBoundaryValue(10, 11, SDL_TRUE) returns 10, 11 */
aschiffler@6872
   916
  sresult = (Sint64)SDLTest_RandomSint64BoundaryValue(10, 11, SDL_TRUE);
aschiffler@6872
   917
  SDLTest_AssertPass("Call to SDLTest_RandomSint64BoundaryValue");
aschiffler@6872
   918
  SDLTest_AssertCheck(
aschiffler@6872
   919
    sresult == 10 || sresult == 11,
slouken@7191
   920
    "Validate result value for parameters (10,11,SDL_TRUE); expected: 10|11, got: %lld", sresult);
aschiffler@6872
   921
aschiffler@6872
   922
  /* RandomSintXBoundaryValue(10, 12, SDL_TRUE) returns 10, 11, 12 */
aschiffler@6872
   923
  sresult = (Sint64)SDLTest_RandomSint64BoundaryValue(10, 12, SDL_TRUE);
aschiffler@6872
   924
  SDLTest_AssertPass("Call to SDLTest_RandomSint64BoundaryValue");
aschiffler@6872
   925
  SDLTest_AssertCheck(
aschiffler@6872
   926
    sresult == 10 || sresult == 11 || sresult == 12,
slouken@7191
   927
    "Validate result value for parameters (10,12,SDL_TRUE); expected: 10|11|12, got: %lld", sresult);
aschiffler@6872
   928
aschiffler@6872
   929
  /* RandomSintXBoundaryValue(10, 13, SDL_TRUE) returns 10, 11, 12, 13 */
aschiffler@6872
   930
  sresult = (Sint64)SDLTest_RandomSint64BoundaryValue(10, 13, SDL_TRUE);
aschiffler@6872
   931
  SDLTest_AssertPass("Call to SDLTest_RandomSint64BoundaryValue");
aschiffler@6872
   932
  SDLTest_AssertCheck(
aschiffler@6872
   933
    sresult == 10 || sresult == 11 || sresult == 12 || sresult == 13,
slouken@7191
   934
    "Validate result value for parameters (10,13,SDL_TRUE); expected: 10|11|12|13, got: %lld", sresult);
aschiffler@6872
   935
aschiffler@6872
   936
  /* RandomSintXBoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 */
aschiffler@6872
   937
  sresult = (Sint64)SDLTest_RandomSint64BoundaryValue(10, 20, SDL_TRUE);
aschiffler@6872
   938
  SDLTest_AssertPass("Call to SDLTest_RandomSint64BoundaryValue");
aschiffler@6872
   939
  SDLTest_AssertCheck(
aschiffler@6872
   940
    sresult == 10 || sresult == 11 || sresult == 19 || sresult == 20,
slouken@7191
   941
    "Validate result value for parameters (10,20,SDL_TRUE); expected: 10|11|19|20, got: %lld", sresult);
aschiffler@6872
   942
aschiffler@6872
   943
  /* RandomSintXBoundaryValue(20, 10, SDL_TRUE) returns 10, 11, 19 or 20 */
aschiffler@6872
   944
  sresult = (Sint64)SDLTest_RandomSint64BoundaryValue(20, 10, SDL_TRUE);
aschiffler@6872
   945
  SDLTest_AssertPass("Call to SDLTest_RandomSint64BoundaryValue");
aschiffler@6872
   946
  SDLTest_AssertCheck(
aschiffler@6872
   947
    sresult == 10 || sresult == 11 || sresult == 19 || sresult == 20,
slouken@7191
   948
    "Validate result value for parameters (20,10,SDL_TRUE); expected: 10|11|19|20, got: %lld", sresult);
aschiffler@6872
   949
aschiffler@6872
   950
  /* RandomSintXBoundaryValue(1, 20, SDL_FALSE) returns 0, 21 */
aschiffler@6872
   951
  sresult = (Sint64)SDLTest_RandomSint64BoundaryValue(1, 20, SDL_FALSE);
aschiffler@6872
   952
  SDLTest_AssertPass("Call to SDLTest_RandomSint64BoundaryValue");
aschiffler@6872
   953
  SDLTest_AssertCheck(
aschiffler@6872
   954
    sresult == 0 || sresult == 21,
slouken@7191
   955
    "Validate result value for parameters (1,20,SDL_FALSE); expected: 0|21, got: %lld", sresult);
slouken@7191
   956
aschiffler@6872
   957
  /* RandomSintXBoundaryValue(LLONG_MIN, 99, SDL_FALSE) returns 100 */
aschiffler@6872
   958
  sresult = (Sint64)SDLTest_RandomSint64BoundaryValue(LLONG_MIN, 99, SDL_FALSE);
aschiffler@6872
   959
  SDLTest_AssertPass("Call to SDLTest_RandomSint64BoundaryValue");
aschiffler@6872
   960
  SDLTest_AssertCheck(
aschiffler@6872
   961
    sresult == 100,
slouken@7191
   962
    "Validate result value for parameters (LLONG_MIN,99,SDL_FALSE); expected: 100, got: %lld", sresult);
aschiffler@6872
   963
aschiffler@6872
   964
  /* RandomSintXBoundaryValue(LLONG_MIN + 1, LLONG_MAX, SDL_FALSE) returns LLONG_MIN (no error) */
aschiffler@6872
   965
  sresult = (Sint64)SDLTest_RandomSint64BoundaryValue(LLONG_MIN + 1, LLONG_MAX, SDL_FALSE);
aschiffler@6872
   966
  SDLTest_AssertPass("Call to SDLTest_RandomSint64BoundaryValue");
aschiffler@6872
   967
  SDLTest_AssertCheck(
aschiffler@6872
   968
    sresult == LLONG_MIN,
aschiffler@6872
   969
    "Validate result value for parameters (LLONG_MIN+1,LLONG_MAX,SDL_FALSE); expected: %lld, got: %lld", LLONG_MIN, sresult);
aschiffler@6872
   970
  lastError = (char *)SDL_GetError();
aschiffler@6872
   971
  SDLTest_AssertPass("SDL_GetError()");
slouken@7721
   972
  SDLTest_AssertCheck(lastError == NULL || lastError[0] == '\0', "Validate no error message was set");
aschiffler@6872
   973
aschiffler@6872
   974
  /* RandomSintXBoundaryValue(LLONG_MIN, LLONG_MAX - 1, SDL_FALSE) returns LLONG_MAX (no error) */
aschiffler@6872
   975
  sresult = (Sint64)SDLTest_RandomSint64BoundaryValue(LLONG_MIN, LLONG_MAX - 1, SDL_FALSE);
aschiffler@6872
   976
  SDLTest_AssertPass("Call to SDLTest_RandomSint64BoundaryValue");
aschiffler@6872
   977
  SDLTest_AssertCheck(
aschiffler@6872
   978
    sresult == LLONG_MAX,
aschiffler@6872
   979
    "Validate result value for parameters (LLONG_MIN,LLONG_MAX - 1,SDL_FALSE); expected: %lld, got: %lld", LLONG_MAX, sresult);
aschiffler@6872
   980
  lastError = (char *)SDL_GetError();
aschiffler@6872
   981
  SDLTest_AssertPass("SDL_GetError()");
slouken@7721
   982
  SDLTest_AssertCheck(lastError == NULL || lastError[0] == '\0', "Validate no error message was set");
aschiffler@6872
   983
aschiffler@6872
   984
  /* RandomSintXBoundaryValue(LLONG_MIN, LLONG_MAX, SDL_FALSE) returns 0 (sets error) */
aschiffler@6872
   985
  sresult = (Sint64)SDLTest_RandomSint64BoundaryValue(LLONG_MIN, LLONG_MAX, SDL_FALSE);
aschiffler@6872
   986
  SDLTest_AssertPass("Call to SDLTest_RandomSint64BoundaryValue");
aschiffler@6872
   987
  SDLTest_AssertCheck(
aschiffler@6872
   988
    sresult == LLONG_MIN,
aschiffler@6872
   989
    "Validate result value for parameters(LLONG_MIN,LLONG_MAX,SDL_FALSE); expected: %lld, got: %lld", LLONG_MIN, sresult);
aschiffler@6872
   990
  lastError = (char *)SDL_GetError();
aschiffler@6872
   991
  SDLTest_AssertPass("SDL_GetError()");
aschiffler@6872
   992
  SDLTest_AssertCheck(lastError != NULL && SDL_strcmp(lastError, expectedError) == 0,
aschiffler@6872
   993
             "SDL_GetError(): expected message '%s', was message: '%s'",
aschiffler@6872
   994
             expectedError,
aschiffler@6872
   995
             lastError);
aschiffler@6872
   996
aschiffler@6872
   997
  /* Clear error messages */
aschiffler@6872
   998
  SDL_ClearError();
aschiffler@6872
   999
  SDLTest_AssertPass("SDL_ClearError()");
aschiffler@6872
  1000
aschiffler@6872
  1001
  return TEST_COMPLETED;
aschiffler@6872
  1002
}
aschiffler@6872
  1003
aschiffler@6875
  1004
/**
aschiffler@6875
  1005
 * @brief Calls to SDLTest_RandomIntegerInRange
aschiffler@6875
  1006
 */
aschiffler@6875
  1007
int
aschiffler@6875
  1008
sdltest_randomIntegerInRange(void *arg)
aschiffler@6875
  1009
{
aschiffler@6875
  1010
  Sint32 min, max;
aschiffler@6875
  1011
  Sint32 result;
aschiffler@7172
  1012
#if ((ULONG_MAX) == (UINT_MAX))
slouken@7191
  1013
  Sint32 long_min = LONG_MIN;
aschiffler@7172
  1014
  Sint32 long_max = LONG_MAX;
aschiffler@7172
  1015
#else
aschiffler@7172
  1016
  Sint32 long_min = INT_MIN;
aschiffler@7172
  1017
  Sint32 long_max = INT_MAX;
aschiffler@7172
  1018
#endif
aschiffler@6875
  1019
aschiffler@6875
  1020
  /* Standard range */
aschiffler@6875
  1021
  min = (Sint32)SDLTest_RandomSint16();
aschiffler@6875
  1022
  max = min + (Sint32)SDLTest_RandomUint8() + 2;
aschiffler@6875
  1023
  result = SDLTest_RandomIntegerInRange(min, max);
aschiffler@6875
  1024
  SDLTest_AssertPass("Call to SDLTest_RandomIntegerInRange(min,max)");
aschiffler@6875
  1025
  SDLTest_AssertCheck(min <= result && result <= max, "Validated returned value; expected: [%d,%d], got: %d", min, max, result);
aschiffler@6875
  1026
aschiffler@6875
  1027
  /* One Range */
aschiffler@6875
  1028
  min = (Sint32)SDLTest_RandomSint16();
aschiffler@6875
  1029
  max = min + 1;
aschiffler@6875
  1030
  result = SDLTest_RandomIntegerInRange(min, max);
aschiffler@6875
  1031
  SDLTest_AssertPass("Call to SDLTest_RandomIntegerInRange(min,min+1)");
aschiffler@6875
  1032
  SDLTest_AssertCheck(min <= result && result <= max, "Validated returned value; expected: [%d,%d], got: %d", min, max, result);
aschiffler@6875
  1033
aschiffler@6875
  1034
  /* Zero range */
aschiffler@6875
  1035
  min = (Sint32)SDLTest_RandomSint16();
aschiffler@6875
  1036
  max = min;
aschiffler@6875
  1037
  result = SDLTest_RandomIntegerInRange(min, max);
aschiffler@6875
  1038
  SDLTest_AssertPass("Call to SDLTest_RandomIntegerInRange(min,min)");
aschiffler@6875
  1039
  SDLTest_AssertCheck(min == result, "Validated returned value; expected: %d, got: %d", min, result);
aschiffler@6875
  1040
aschiffler@6875
  1041
  /* Zero range at zero */
aschiffler@6875
  1042
  min = 0;
aschiffler@6875
  1043
  max = 0;
aschiffler@6875
  1044
  result = SDLTest_RandomIntegerInRange(min, max);
aschiffler@6875
  1045
  SDLTest_AssertPass("Call to SDLTest_RandomIntegerInRange(0,0)");
aschiffler@6875
  1046
  SDLTest_AssertCheck(result == 0, "Validated returned value; expected: 0, got: %d", min, max, result);
aschiffler@6875
  1047
aschiffler@6875
  1048
  /* Swapped min-max */
aschiffler@6875
  1049
  min = (Sint32)SDLTest_RandomSint16();
aschiffler@6875
  1050
  max = min + (Sint32)SDLTest_RandomUint8() + 2;
aschiffler@6875
  1051
  result = SDLTest_RandomIntegerInRange(max, min);
aschiffler@6875
  1052
  SDLTest_AssertPass("Call to SDLTest_RandomIntegerInRange(max,min)");
aschiffler@6875
  1053
  SDLTest_AssertCheck(min <= result && result <= max, "Validated returned value; expected: [%d,%d], got: %d", min, max, result);
aschiffler@6875
  1054
aschiffler@6875
  1055
  /* Range with min at integer limit */
aschiffler@7172
  1056
  min = long_min;
aschiffler@7172
  1057
  max = long_max + (Sint32)SDLTest_RandomSint16();
aschiffler@6875
  1058
  result = SDLTest_RandomIntegerInRange(min, max);
aschiffler@6875
  1059
  SDLTest_AssertPass("Call to SDLTest_RandomIntegerInRange(SINT32_MIN,...)");
aschiffler@6875
  1060
  SDLTest_AssertCheck(min <= result && result <= max, "Validated returned value; expected: [%d,%d], got: %d", min, max, result);
aschiffler@6875
  1061
aschiffler@6875
  1062
  /* Range with max at integer limit */
aschiffler@7172
  1063
  min = long_min - (Sint32)SDLTest_RandomSint16();;
aschiffler@7172
  1064
  max = long_max;
aschiffler@6875
  1065
  result = SDLTest_RandomIntegerInRange(min, max);
aschiffler@6875
  1066
  SDLTest_AssertPass("Call to SDLTest_RandomIntegerInRange(...,SINT32_MAX)");
aschiffler@6875
  1067
  SDLTest_AssertCheck(min <= result && result <= max, "Validated returned value; expected: [%d,%d], got: %d", min, max, result);
aschiffler@6875
  1068
aschiffler@6875
  1069
  /* Full integer range */
aschiffler@7172
  1070
  min = long_min;
aschiffler@7172
  1071
  max = long_max;
aschiffler@6875
  1072
  result = SDLTest_RandomIntegerInRange(min, max);
aschiffler@6875
  1073
  SDLTest_AssertPass("Call to SDLTest_RandomIntegerInRange(SINT32_MIN,SINT32_MAX)");
aschiffler@6875
  1074
  SDLTest_AssertCheck(min <= result && result <= max, "Validated returned value; expected: [%d,%d], got: %d", min, max, result);
aschiffler@6875
  1075
aschiffler@6875
  1076
  return TEST_COMPLETED;
aschiffler@6875
  1077
}
aschiffler@6875
  1078
aschiffler@6875
  1079
/**
aschiffler@6875
  1080
 * @brief Calls to SDLTest_RandomAsciiString
aschiffler@6875
  1081
 */
aschiffler@6875
  1082
int
aschiffler@6875
  1083
sdltest_randomAsciiString(void *arg)
aschiffler@6875
  1084
{
aschiffler@6875
  1085
  char* result;
aschiffler@6875
  1086
  int len;
aschiffler@6875
  1087
  int nonAsciiCharacters;
aschiffler@6875
  1088
  int i;
aschiffler@6875
  1089
aschiffler@6875
  1090
  result = SDLTest_RandomAsciiString();
aschiffler@6875
  1091
  SDLTest_AssertPass("Call to SDLTest_RandomAsciiString()");
aschiffler@6875
  1092
  SDLTest_AssertCheck(result != NULL, "Validate that result is not NULL");
aschiffler@6875
  1093
  if (result != NULL) {
aschiffler@6875
  1094
     len = SDL_strlen(result);
aschiffler@6875
  1095
     SDLTest_AssertCheck(len >= 0 && len <= 255, "Validate that result length; expected: len=[1,255], got: %d", len);
aschiffler@6875
  1096
     nonAsciiCharacters = 0;
aschiffler@6875
  1097
     for (i=0; i<len; i++) {
aschiffler@6875
  1098
       if (iscntrl(result[i])) {
aschiffler@6875
  1099
         nonAsciiCharacters++;
aschiffler@6875
  1100
       }
aschiffler@6875
  1101
     }
aschiffler@6875
  1102
     SDLTest_AssertCheck(nonAsciiCharacters == 0, "Validate that result does not contain non-Ascii characters, got: %d", nonAsciiCharacters);
aschiffler@6875
  1103
     if (nonAsciiCharacters) {
slouken@7191
  1104
        SDLTest_LogError("Invalid result from generator: '%s'", result);
aschiffler@6875
  1105
     }
slouken@7191
  1106
     SDL_free(result);
aschiffler@6875
  1107
  }
slouken@7191
  1108
aschiffler@6875
  1109
  return TEST_COMPLETED;
aschiffler@6875
  1110
}
aschiffler@6875
  1111
aschiffler@6875
  1112
aschiffler@6875
  1113
/**
aschiffler@6875
  1114
 * @brief Calls to SDLTest_RandomAsciiStringWithMaximumLength
aschiffler@6875
  1115
 */
aschiffler@6875
  1116
int
aschiffler@6875
  1117
sdltest_randomAsciiStringWithMaximumLength(void *arg)
aschiffler@6875
  1118
{
aschiffler@6875
  1119
  const char* expectedError = "Parameter 'maxLength' is invalid";
aschiffler@6875
  1120
  char* lastError;
aschiffler@6875
  1121
  char* result;
aschiffler@6875
  1122
  int targetLen;
aschiffler@6875
  1123
  int len;
aschiffler@6875
  1124
  int nonAsciiCharacters;
aschiffler@6875
  1125
  int i;
aschiffler@6875
  1126
aschiffler@6875
  1127
  targetLen = 16 + SDLTest_RandomUint8();
aschiffler@6875
  1128
  result = SDLTest_RandomAsciiStringWithMaximumLength(targetLen);
aschiffler@6875
  1129
  SDLTest_AssertPass("Call to SDLTest_RandomAsciiStringWithMaximumLength(%d)", targetLen);
aschiffler@6875
  1130
  SDLTest_AssertCheck(result != NULL, "Validate that result is not NULL");
aschiffler@6875
  1131
  if (result != NULL) {
aschiffler@6875
  1132
     len = SDL_strlen(result);
aschiffler@6875
  1133
     SDLTest_AssertCheck(len >= 0 && len <= targetLen, "Validate that result length; expected: len=[1,%d], got: %d", targetLen, len);
aschiffler@6875
  1134
     nonAsciiCharacters = 0;
aschiffler@6875
  1135
     for (i=0; i<len; i++) {
aschiffler@6875
  1136
       if (iscntrl(result[i])) {
aschiffler@6875
  1137
         nonAsciiCharacters++;
aschiffler@6875
  1138
       }
aschiffler@6875
  1139
     }
aschiffler@6875
  1140
     SDLTest_AssertCheck(nonAsciiCharacters == 0, "Validate that result does not contain non-Ascii characters, got: %d", nonAsciiCharacters);
aschiffler@6875
  1141
     if (nonAsciiCharacters) {
slouken@7191
  1142
        SDLTest_LogError("Invalid result from generator: '%s'", result);
aschiffler@6875
  1143
     }
slouken@7191
  1144
     SDL_free(result);
aschiffler@6875
  1145
  }
aschiffler@6875
  1146
aschiffler@6875
  1147
  /* Negative test */
aschiffler@6875
  1148
  targetLen = 0;
aschiffler@6875
  1149
  result = SDLTest_RandomAsciiStringWithMaximumLength(targetLen);
aschiffler@6875
  1150
  SDLTest_AssertPass("Call to SDLTest_RandomAsciiStringWithMaximumLength(%d)", targetLen);
aschiffler@6875
  1151
  SDLTest_AssertCheck(result == NULL, "Validate that result is NULL");
aschiffler@6875
  1152
  lastError = (char *)SDL_GetError();
aschiffler@6875
  1153
  SDLTest_AssertPass("SDL_GetError()");
aschiffler@6875
  1154
  SDLTest_AssertCheck(lastError != NULL && SDL_strcmp(lastError, expectedError) == 0,
aschiffler@6875
  1155
             "SDL_GetError(): expected message '%s', was message: '%s'",
aschiffler@6875
  1156
             expectedError,
aschiffler@6875
  1157
             lastError);
aschiffler@6875
  1158
aschiffler@6875
  1159
  /* Clear error messages */
aschiffler@6875
  1160
  SDL_ClearError();
aschiffler@6875
  1161
  SDLTest_AssertPass("SDL_ClearError()");
slouken@7191
  1162
aschiffler@6875
  1163
  return TEST_COMPLETED;
aschiffler@6875
  1164
}
aschiffler@6875
  1165
aschiffler@6875
  1166
/**
aschiffler@6875
  1167
 * @brief Calls to SDLTest_RandomAsciiStringOfSize
aschiffler@6875
  1168
 */
aschiffler@6875
  1169
int
aschiffler@6875
  1170
sdltest_randomAsciiStringOfSize(void *arg)
aschiffler@6875
  1171
{
aschiffler@6875
  1172
  const char* expectedError = "Parameter 'size' is invalid";
aschiffler@6875
  1173
  char* lastError;
aschiffler@6875
  1174
  char* result;
aschiffler@6875
  1175
  int targetLen;
aschiffler@6875
  1176
  int len;
aschiffler@6875
  1177
  int nonAsciiCharacters;
aschiffler@6875
  1178
  int i;
aschiffler@6875
  1179
aschiffler@6875
  1180
  /* Positive test */
aschiffler@6875
  1181
  targetLen = 16 + SDLTest_RandomUint8();
aschiffler@6875
  1182
  result = SDLTest_RandomAsciiStringOfSize(targetLen);
aschiffler@6875
  1183
  SDLTest_AssertPass("Call to SDLTest_RandomAsciiStringOfSize(%d)", targetLen);
aschiffler@6875
  1184
  SDLTest_AssertCheck(result != NULL, "Validate that result is not NULL");
aschiffler@6875
  1185
  if (result != NULL) {
aschiffler@6875
  1186
     len = SDL_strlen(result);
aschiffler@6875
  1187
     SDLTest_AssertCheck(len == targetLen, "Validate that result length; expected: len=%d, got: %d", targetLen, len);
aschiffler@6875
  1188
     nonAsciiCharacters = 0;
aschiffler@6875
  1189
     for (i=0; i<len; i++) {
aschiffler@6875
  1190
       if (iscntrl(result[i])) {
aschiffler@6875
  1191
         nonAsciiCharacters++;
aschiffler@6875
  1192
       }
aschiffler@6875
  1193
     }
philipp@7144
  1194
     SDLTest_AssertCheck(nonAsciiCharacters == 0, "Validate that result does not contain non-ASCII characters, got: %d", nonAsciiCharacters);
aschiffler@6875
  1195
     if (nonAsciiCharacters) {
slouken@7191
  1196
        SDLTest_LogError("Invalid result from generator: '%s'", result);
aschiffler@6875
  1197
     }
slouken@7191
  1198
     SDL_free(result);
aschiffler@6875
  1199
  }
slouken@7191
  1200
aschiffler@6875
  1201
  /* Negative test */
aschiffler@6875
  1202
  targetLen = 0;
aschiffler@6875
  1203
  result = SDLTest_RandomAsciiStringOfSize(targetLen);
aschiffler@6875
  1204
  SDLTest_AssertPass("Call to SDLTest_RandomAsciiStringOfSize(%d)", targetLen);
aschiffler@6875
  1205
  SDLTest_AssertCheck(result == NULL, "Validate that result is NULL");
aschiffler@6875
  1206
  lastError = (char *)SDL_GetError();
aschiffler@6875
  1207
  SDLTest_AssertPass("SDL_GetError()");
aschiffler@6875
  1208
  SDLTest_AssertCheck(lastError != NULL && SDL_strcmp(lastError, expectedError) == 0,
aschiffler@6875
  1209
             "SDL_GetError(): expected message '%s', was message: '%s'",
aschiffler@6875
  1210
             expectedError,
aschiffler@6875
  1211
             lastError);
aschiffler@6875
  1212
aschiffler@6875
  1213
  /* Clear error messages */
aschiffler@6875
  1214
  SDL_ClearError();
aschiffler@6875
  1215
  SDLTest_AssertPass("SDL_ClearError()");
slouken@7191
  1216
aschiffler@6875
  1217
  return TEST_COMPLETED;
aschiffler@6875
  1218
}
aschiffler@6875
  1219
aschiffler@6872
  1220
aschiffler@6839
  1221
/* ================= Test References ================== */
aschiffler@6839
  1222
aschiffler@6839
  1223
/* SDL_test test cases */
aschiffler@6839
  1224
static const SDLTest_TestCaseReference sdltestTest1 =
slouken@7191
  1225
        { (SDLTest_TestCaseFp)sdltest_getFuzzerInvocationCount, "sdltest_getFuzzerInvocationCount", "Call to sdltest_GetFuzzerInvocationCount", TEST_ENABLED };
aschiffler@6839
  1226
aschiffler@6839
  1227
static const SDLTest_TestCaseReference sdltestTest2 =
slouken@7191
  1228
        { (SDLTest_TestCaseFp)sdltest_randomNumber, "sdltest_randomNumber", "Calls to random number generators", TEST_ENABLED };
aschiffler@6839
  1229
aschiffler@6872
  1230
static const SDLTest_TestCaseReference sdltestTest3 =
slouken@7191
  1231
        { (SDLTest_TestCaseFp)sdltest_randomBoundaryNumberUint8, "sdltest_randomBoundaryNumberUint8", "Calls to random boundary number generators for Uint8", TEST_ENABLED };
aschiffler@6872
  1232
aschiffler@6872
  1233
static const SDLTest_TestCaseReference sdltestTest4 =
slouken@7191
  1234
        { (SDLTest_TestCaseFp)sdltest_randomBoundaryNumberUint16, "sdltest_randomBoundaryNumberUint16", "Calls to random boundary number generators for Uint16", TEST_ENABLED };
aschiffler@6872
  1235
aschiffler@6872
  1236
static const SDLTest_TestCaseReference sdltestTest5 =
slouken@7191
  1237
        { (SDLTest_TestCaseFp)sdltest_randomBoundaryNumberUint32, "sdltest_randomBoundaryNumberUint32", "Calls to random boundary number generators for Uint32", TEST_ENABLED };
aschiffler@6872
  1238
aschiffler@6872
  1239
static const SDLTest_TestCaseReference sdltestTest6 =
slouken@7191
  1240
        { (SDLTest_TestCaseFp)sdltest_randomBoundaryNumberUint64, "sdltest_randomBoundaryNumberUint64", "Calls to random boundary number generators for Uint64", TEST_ENABLED };
aschiffler@6872
  1241
aschiffler@6872
  1242
static const SDLTest_TestCaseReference sdltestTest7 =
slouken@7191
  1243
        { (SDLTest_TestCaseFp)sdltest_randomBoundaryNumberSint8, "sdltest_randomBoundaryNumberSint8", "Calls to random boundary number generators for Sint8", TEST_ENABLED };
aschiffler@6872
  1244
aschiffler@6872
  1245
static const SDLTest_TestCaseReference sdltestTest8 =
slouken@7191
  1246
        { (SDLTest_TestCaseFp)sdltest_randomBoundaryNumberSint16, "sdltest_randomBoundaryNumberSint16", "Calls to random boundary number generators for Sint16", TEST_ENABLED };
aschiffler@6872
  1247
aschiffler@6872
  1248
static const SDLTest_TestCaseReference sdltestTest9 =
slouken@7191
  1249
        { (SDLTest_TestCaseFp)sdltest_randomBoundaryNumberSint32, "sdltest_randomBoundaryNumberSint32", "Calls to random boundary number generators for Sint32", TEST_ENABLED };
aschiffler@6872
  1250
aschiffler@6872
  1251
static const SDLTest_TestCaseReference sdltestTest10 =
slouken@7191
  1252
        { (SDLTest_TestCaseFp)sdltest_randomBoundaryNumberSint64, "sdltest_randomBoundaryNumberSint64", "Calls to random boundary number generators for Sint64", TEST_ENABLED };
aschiffler@6872
  1253
aschiffler@6875
  1254
static const SDLTest_TestCaseReference sdltestTest11 =
slouken@7191
  1255
        { (SDLTest_TestCaseFp)sdltest_randomIntegerInRange, "sdltest_randomIntegerInRange", "Calls to ranged random number generator", TEST_ENABLED };
aschiffler@6875
  1256
aschiffler@6875
  1257
static const SDLTest_TestCaseReference sdltestTest12 =
slouken@7191
  1258
        { (SDLTest_TestCaseFp)sdltest_randomAsciiString, "sdltest_randomAsciiString", "Calls to default ASCII string generator", TEST_ENABLED };
aschiffler@6875
  1259
aschiffler@6875
  1260
static const SDLTest_TestCaseReference sdltestTest13 =
slouken@7191
  1261
        { (SDLTest_TestCaseFp)sdltest_randomAsciiStringWithMaximumLength, "sdltest_randomAsciiStringWithMaximumLength", "Calls to random maximum length ASCII string generator", TEST_ENABLED };
aschiffler@6875
  1262
aschiffler@6875
  1263
static const SDLTest_TestCaseReference sdltestTest14 =
slouken@7191
  1264
        { (SDLTest_TestCaseFp)sdltest_randomAsciiStringOfSize, "sdltest_randomAsciiStringOfSize", "Calls to fixed size ASCII string generator", TEST_ENABLED };
aschiffler@6875
  1265
aschiffler@6839
  1266
/* Sequence of SDL_test test cases */
aschiffler@6839
  1267
static const SDLTest_TestCaseReference *sdltestTests[] =  {
slouken@7191
  1268
    &sdltestTest1, &sdltestTest2, &sdltestTest3, &sdltestTest4, &sdltestTest5, &sdltestTest6,
slouken@7191
  1269
    &sdltestTest7, &sdltestTest8, &sdltestTest9, &sdltestTest10, &sdltestTest11, &sdltestTest12,
slouken@7191
  1270
    &sdltestTest13, &sdltestTest14, NULL
aschiffler@6839
  1271
};
aschiffler@6839
  1272
aschiffler@6839
  1273
/* SDL_test test suite (global) */
aschiffler@6839
  1274
SDLTest_TestSuiteReference sdltestTestSuite = {
slouken@7191
  1275
    "SDLtest",
slouken@7191
  1276
    NULL,
slouken@7191
  1277
    sdltestTests,
slouken@7191
  1278
    NULL
aschiffler@6839
  1279
};