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