test/testautomation_sdltest.c
author Sam Lantinga <slouken@libsdl.org>
Sat, 18 May 2013 14:17:52 -0700
changeset 7191 75360622e65f
parent 7172 b3569dff1c6e
child 7614 af0bd07212bd
permissions -rw-r--r--
File style cleanup for the SDL 2.0 release
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@6839
    66
  min = 1 - (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@6839
    77
  min = 1 - (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@6839
    88
  min = 1 - ((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()");
aschiffler@6872
   195
  SDLTest_AssertCheck(lastError == NULL || SDL_strlen(lastError) == 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()");
aschiffler@6872
   205
  SDLTest_AssertCheck(lastError == NULL || SDL_strlen(lastError) == 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()");
aschiffler@6872
   305
  SDLTest_AssertCheck(lastError == NULL || SDL_strlen(lastError) == 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()");
aschiffler@6872
   315
  SDLTest_AssertCheck(lastError == NULL || SDL_strlen(lastError) == 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()");
aschiffler@6872
   415
  SDLTest_AssertCheck(lastError == NULL || SDL_strlen(lastError) == 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()");
aschiffler@6872
   425
  SDLTest_AssertCheck(lastError == NULL || SDL_strlen(lastError) == 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()");
aschiffler@6872
   525
  SDLTest_AssertCheck(lastError == NULL || SDL_strlen(lastError) == 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()");
aschiffler@6872
   535
  SDLTest_AssertCheck(lastError == NULL || SDL_strlen(lastError) == 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()");
aschiffler@6872
   635
  SDLTest_AssertCheck(lastError == NULL || SDL_strlen(lastError) == 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()");
aschiffler@6872
   645
  SDLTest_AssertCheck(lastError == NULL || SDL_strlen(lastError) == 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()");
aschiffler@6872
   745
  SDLTest_AssertCheck(lastError == NULL || SDL_strlen(lastError) == 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()");
aschiffler@6872
   755
  SDLTest_AssertCheck(lastError == NULL || SDL_strlen(lastError) == 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()");
aschiffler@6872
   862
  SDLTest_AssertCheck(lastError == NULL || SDL_strlen(lastError) == 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()");
aschiffler@6872
   872
  SDLTest_AssertCheck(lastError == NULL || SDL_strlen(lastError) == 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()");
aschiffler@6872
   972
  SDLTest_AssertCheck(lastError == NULL || SDL_strlen(lastError) == 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()");
aschiffler@6872
   982
  SDLTest_AssertCheck(lastError == NULL || SDL_strlen(lastError) == 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
};