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