test/testautomation_sdltest.c
author Ryan C. Gordon <icculus@icculus.org>
Wed, 03 Oct 2018 16:54:24 -0400
changeset 12284 fe9bafcd47ba
parent 11420 f1dcaee3479b
permissions -rw-r--r--
evdev: Don't initialize struct sigaction with "{ 0 }".

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