2021-04-18 05:35:25 +02:00
/**
* SDL_test test suite
*/
# include <limits.h>
/* Visual Studio 2008 doesn't have stdint.h */
# if defined(_MSC_VER) && _MSC_VER <= 1500
# define UINT8_MAX _UI8_MAX
# define UINT16_MAX _UI16_MAX
# define UINT32_MAX _UI32_MAX
# define INT64_MIN _I64_MIN
# define INT64_MAX _I64_MAX
# define UINT64_MAX _UI64_MAX
# else
# include <stdint.h>
# endif
# include <stdio.h>
# include <float.h>
# include <ctype.h>
# include "SDL.h"
# include "SDL_test.h"
/* Test case functions */
/* Forward declarations for internal harness functions */
extern char * SDLTest_GenerateRunSeed ( const int length ) ;
/**
* @ brief Calls to SDLTest_GenerateRunSeed ( )
*/
int
sdltest_generateRunSeed ( void * arg )
{
char * result ;
size_t i , l ;
int j ;
for ( i = 1 ; i < = 10 ; i + = 3 ) {
result = SDLTest_GenerateRunSeed ( ( const int ) i ) ;
SDLTest_AssertPass ( " Call to SDLTest_GenerateRunSeed() " ) ;
SDLTest_AssertCheck ( result ! = NULL , " Verify returned value is not NULL " ) ;
if ( result ! = NULL ) {
l = SDL_strlen ( result ) ;
SDLTest_AssertCheck ( l = = i , " Verify length of returned value is %d, got: %d " , ( int ) i , ( int ) l ) ;
SDL_free ( result ) ;
}
}
/* Negative cases */
for ( j = - 2 ; j < = 0 ; j + + ) {
result = SDLTest_GenerateRunSeed ( ( const int ) j ) ;
SDLTest_AssertPass ( " Call to SDLTest_GenerateRunSeed() " ) ;
SDLTest_AssertCheck ( result = = NULL , " Verify returned value is not NULL " ) ;
}
return TEST_COMPLETED ;
}
/**
* @ brief Calls to SDLTest_GetFuzzerInvocationCount ( )
*/
int
sdltest_getFuzzerInvocationCount ( void * arg )
{
Uint8 result ;
int fuzzerCount1 , fuzzerCount2 ;
fuzzerCount1 = SDLTest_GetFuzzerInvocationCount ( ) ;
SDLTest_AssertPass ( " Call to SDLTest_GetFuzzerInvocationCount() " ) ;
SDLTest_AssertCheck ( fuzzerCount1 > = 0 , " Verify returned value, expected: >=0, got: %d " , fuzzerCount1 ) ;
result = SDLTest_RandomUint8 ( ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint8(), returned %d " , result ) ;
fuzzerCount2 = SDLTest_GetFuzzerInvocationCount ( ) ;
SDLTest_AssertPass ( " Call to SDLTest_GetFuzzerInvocationCount() " ) ;
SDLTest_AssertCheck ( fuzzerCount2 > fuzzerCount1 , " Verify returned value, expected: >%d, got: %d " , fuzzerCount1 , fuzzerCount2 ) ;
return TEST_COMPLETED ;
}
/**
* @ brief Calls to random number generators
*/
int
sdltest_randomNumber ( void * arg )
{
Sint64 result ;
Uint64 uresult ;
double dresult ;
Uint64 umax ;
Sint64 min , max ;
result = ( Sint64 ) SDLTest_RandomUint8 ( ) ;
umax = ( 1 < < 8 ) - 1 ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint8 " ) ;
SDLTest_AssertCheck ( result > = 0 & & result < = ( Sint64 ) umax , " Verify result value, expected: [0,% " SDL_PRIu64 " ], got: % " SDL_PRIs64 , umax , result ) ;
result = ( Sint64 ) SDLTest_RandomSint8 ( ) ;
min = 0 - ( 1 < < 7 ) ;
max = ( 1 < < 7 ) - 1 ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint8 " ) ;
SDLTest_AssertCheck ( result > = min & & result < = max , " Verify result value, expected: [% " SDL_PRIs64 " ,% " SDL_PRIs64 " ], got: % " SDL_PRIs64 , min , max , result ) ;
result = ( Sint64 ) SDLTest_RandomUint16 ( ) ;
umax = ( 1 < < 16 ) - 1 ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint16 " ) ;
SDLTest_AssertCheck ( result > = 0 & & result < = ( Sint64 ) umax , " Verify result value, expected: [0,% " SDL_PRIu64 " ], got: % " SDL_PRIs64 , umax , result ) ;
result = ( Sint64 ) SDLTest_RandomSint16 ( ) ;
min = 0 - ( 1 < < 15 ) ;
max = ( 1 < < 15 ) - 1 ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint16 " ) ;
SDLTest_AssertCheck ( result > = min & & result < = max , " Verify result value, expected: [% " SDL_PRIs64 " ,% " SDL_PRIs64 " ], got: % " SDL_PRIs64 , min , max , result ) ;
result = ( Sint64 ) SDLTest_RandomUint32 ( ) ;
umax = ( ( Uint64 ) 1 < < 32 ) - 1 ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint32 " ) ;
SDLTest_AssertCheck ( result > = 0 & & result < = ( Sint64 ) umax , " Verify result value, expected: [0,% " SDL_PRIu64 " ], got: % " SDL_PRIs64 , umax , result ) ;
result = ( Sint64 ) SDLTest_RandomSint32 ( ) ;
min = 0 - ( ( Sint64 ) 1 < < 31 ) ;
max = ( ( Sint64 ) 1 < < 31 ) - 1 ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint32 " ) ;
SDLTest_AssertCheck ( result > = min & & result < = max , " Verify result value, expected: [% " SDL_PRIs64 " ,% " SDL_PRIs64 " ], got: % " SDL_PRIs64 , min , max , result ) ;
uresult = SDLTest_RandomUint64 ( ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint64 " ) ;
result = SDLTest_RandomSint64 ( ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint64 " ) ;
dresult = ( double ) SDLTest_RandomUnitFloat ( ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUnitFloat " ) ;
SDLTest_AssertCheck ( dresult > = 0.0 & & dresult < 1.0 , " Verify result value, expected: [0.0,1.0[, got: %e " , dresult ) ;
dresult = ( double ) SDLTest_RandomFloat ( ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomFloat " ) ;
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 ) ;
dresult = ( double ) SDLTest_RandomUnitDouble ( ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUnitDouble " ) ;
SDLTest_AssertCheck ( dresult > = 0.0 & & dresult < 1.0 , " Verify result value, expected: [0.0,1.0[, got: %e " , dresult ) ;
dresult = SDLTest_RandomDouble ( ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomDouble " ) ;
return TEST_COMPLETED ;
}
/*
* @ brief Calls to random boundary number generators for Uint8
*/
int
sdltest_randomBoundaryNumberUint8 ( void * arg )
{
const char * expectedError = " That operation is not supported " ;
char * lastError ;
Uint64 uresult ;
/* Clean error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
/* RandomUintXBoundaryValue(10, 10, SDL_TRUE) returns 10 */
uresult = ( Uint64 ) SDLTest_RandomUint8BoundaryValue ( 10 , 10 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint8BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 ,
" Validate result value for parameters (10,10,SDL_TRUE); expected: 10, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(10, 11, SDL_TRUE) returns 10, 11 */
uresult = ( Uint64 ) SDLTest_RandomUint8BoundaryValue ( 10 , 11 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint8BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 ,
" Validate result value for parameters (10,11,SDL_TRUE); expected: 10|11, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(10, 12, SDL_TRUE) returns 10, 11, 12 */
uresult = ( Uint64 ) SDLTest_RandomUint8BoundaryValue ( 10 , 12 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint8BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 | | uresult = = 12 ,
" Validate result value for parameters (10,12,SDL_TRUE); expected: 10|11|12, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(10, 13, SDL_TRUE) returns 10, 11, 12, 13 */
uresult = ( Uint64 ) SDLTest_RandomUint8BoundaryValue ( 10 , 13 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint8BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 | | uresult = = 12 | | uresult = = 13 ,
" Validate result value for parameters (10,13,SDL_TRUE); expected: 10|11|12|13, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 */
uresult = ( Uint64 ) SDLTest_RandomUint8BoundaryValue ( 10 , 20 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint8BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 | | uresult = = 19 | | uresult = = 20 ,
" Validate result value for parameters (10,20,SDL_TRUE); expected: 10|11|19|20, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(20, 10, SDL_TRUE) returns 10, 11, 19 or 20 */
uresult = ( Uint64 ) SDLTest_RandomUint8BoundaryValue ( 20 , 10 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint8BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 | | uresult = = 19 | | uresult = = 20 ,
" Validate result value for parameters (20,10,SDL_TRUE); expected: 10|11|19|20, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(1, 20, SDL_FALSE) returns 0, 21 */
uresult = ( Uint64 ) SDLTest_RandomUint8BoundaryValue ( 1 , 20 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint8BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 0 | | uresult = = 21 ,
" Validate result value for parameters (1,20,SDL_FALSE); expected: 0|21, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(0, 99, SDL_FALSE) returns 100 */
uresult = ( Uint64 ) SDLTest_RandomUint8BoundaryValue ( 0 , 99 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint8BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 100 ,
" Validate result value for parameters (0,99,SDL_FALSE); expected: 100, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(1, 0xff, SDL_FALSE) returns 0 (no error) */
uresult = ( Uint64 ) SDLTest_RandomUint8BoundaryValue ( 1 , 255 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint8BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 0 ,
" Validate result value for parameters (1,255,SDL_FALSE); expected: 0, got: % " SDL_PRIs64 , uresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError = = NULL | | lastError [ 0 ] = = ' \0 ' , " Validate no error message was set " ) ;
/* RandomUintXBoundaryValue(0, 0xfe, SDL_FALSE) returns 0xff (no error) */
uresult = ( Uint64 ) SDLTest_RandomUint8BoundaryValue ( 0 , 254 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint8BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 0xff ,
" Validate result value for parameters (0,254,SDL_FALSE); expected: 0xff, got: % " SDL_PRIs64 , uresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError = = NULL | | lastError [ 0 ] = = ' \0 ' , " Validate no error message was set " ) ;
/* RandomUintXBoundaryValue(0, 0xff, SDL_FALSE) returns 0 (sets error) */
uresult = ( Uint64 ) SDLTest_RandomUint8BoundaryValue ( 0 , 255 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint8BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 0 ,
" Validate result value for parameters(0,255,SDL_FALSE); expected: 0, got: % " SDL_PRIs64 , uresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError ! = NULL & & SDL_strcmp ( lastError , expectedError ) = = 0 ,
" SDL_GetError(): expected message '%s', was message: '%s' " ,
expectedError ,
lastError ) ;
/* Clear error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
return TEST_COMPLETED ;
}
/*
* @ brief Calls to random boundary number generators for Uint16
*/
int
sdltest_randomBoundaryNumberUint16 ( void * arg )
{
const char * expectedError = " That operation is not supported " ;
char * lastError ;
Uint64 uresult ;
/* Clean error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
/* RandomUintXBoundaryValue(10, 10, SDL_TRUE) returns 10 */
uresult = ( Uint64 ) SDLTest_RandomUint16BoundaryValue ( 10 , 10 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint16BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 ,
" Validate result value for parameters (10,10,SDL_TRUE); expected: 10, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(10, 11, SDL_TRUE) returns 10, 11 */
uresult = ( Uint64 ) SDLTest_RandomUint16BoundaryValue ( 10 , 11 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint16BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 ,
" Validate result value for parameters (10,11,SDL_TRUE); expected: 10|11, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(10, 12, SDL_TRUE) returns 10, 11, 12 */
uresult = ( Uint64 ) SDLTest_RandomUint16BoundaryValue ( 10 , 12 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint16BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 | | uresult = = 12 ,
" Validate result value for parameters (10,12,SDL_TRUE); expected: 10|11|12, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(10, 13, SDL_TRUE) returns 10, 11, 12, 13 */
uresult = ( Uint64 ) SDLTest_RandomUint16BoundaryValue ( 10 , 13 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint16BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 | | uresult = = 12 | | uresult = = 13 ,
" Validate result value for parameters (10,13,SDL_TRUE); expected: 10|11|12|13, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 */
uresult = ( Uint64 ) SDLTest_RandomUint16BoundaryValue ( 10 , 20 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint16BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 | | uresult = = 19 | | uresult = = 20 ,
" Validate result value for parameters (10,20,SDL_TRUE); expected: 10|11|19|20, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(20, 10, SDL_TRUE) returns 10, 11, 19 or 20 */
uresult = ( Uint64 ) SDLTest_RandomUint16BoundaryValue ( 20 , 10 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint16BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 | | uresult = = 19 | | uresult = = 20 ,
" Validate result value for parameters (20,10,SDL_TRUE); expected: 10|11|19|20, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(1, 20, SDL_FALSE) returns 0, 21 */
uresult = ( Uint64 ) SDLTest_RandomUint16BoundaryValue ( 1 , 20 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint16BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 0 | | uresult = = 21 ,
" Validate result value for parameters (1,20,SDL_FALSE); expected: 0|21, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(0, 99, SDL_FALSE) returns 100 */
uresult = ( Uint64 ) SDLTest_RandomUint16BoundaryValue ( 0 , 99 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint16BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 100 ,
" Validate result value for parameters (0,99,SDL_FALSE); expected: 100, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(1, 0xffff, SDL_FALSE) returns 0 (no error) */
uresult = ( Uint64 ) SDLTest_RandomUint16BoundaryValue ( 1 , 0xffff , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint16BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 0 ,
" Validate result value for parameters (1,0xffff,SDL_FALSE); expected: 0, got: % " SDL_PRIs64 , uresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError = = NULL | | lastError [ 0 ] = = ' \0 ' , " Validate no error message was set " ) ;
/* RandomUintXBoundaryValue(0, 0xfffe, SDL_FALSE) returns 0xffff (no error) */
uresult = ( Uint64 ) SDLTest_RandomUint16BoundaryValue ( 0 , 0xfffe , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint16BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 0xffff ,
" Validate result value for parameters (0,0xfffe,SDL_FALSE); expected: 0xffff, got: % " SDL_PRIs64 , uresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError = = NULL | | lastError [ 0 ] = = ' \0 ' , " Validate no error message was set " ) ;
/* RandomUintXBoundaryValue(0, 0xffff, SDL_FALSE) returns 0 (sets error) */
uresult = ( Uint64 ) SDLTest_RandomUint16BoundaryValue ( 0 , 0xffff , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint16BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 0 ,
" Validate result value for parameters(0,0xffff,SDL_FALSE); expected: 0, got: % " SDL_PRIs64 , uresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError ! = NULL & & SDL_strcmp ( lastError , expectedError ) = = 0 ,
" SDL_GetError(): expected message '%s', was message: '%s' " ,
expectedError ,
lastError ) ;
/* Clear error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
return TEST_COMPLETED ;
}
/*
* @ brief Calls to random boundary number generators for Uint32
*/
int
sdltest_randomBoundaryNumberUint32 ( void * arg )
{
const char * expectedError = " That operation is not supported " ;
char * lastError ;
Uint64 uresult ;
/* Clean error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
/* RandomUintXBoundaryValue(10, 10, SDL_TRUE) returns 10 */
uresult = ( Uint64 ) SDLTest_RandomUint32BoundaryValue ( 10 , 10 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint32BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 ,
" Validate result value for parameters (10,10,SDL_TRUE); expected: 10, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(10, 11, SDL_TRUE) returns 10, 11 */
uresult = ( Uint64 ) SDLTest_RandomUint32BoundaryValue ( 10 , 11 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint32BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 ,
" Validate result value for parameters (10,11,SDL_TRUE); expected: 10|11, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(10, 12, SDL_TRUE) returns 10, 11, 12 */
uresult = ( Uint64 ) SDLTest_RandomUint32BoundaryValue ( 10 , 12 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint32BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 | | uresult = = 12 ,
" Validate result value for parameters (10,12,SDL_TRUE); expected: 10|11|12, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(10, 13, SDL_TRUE) returns 10, 11, 12, 13 */
uresult = ( Uint64 ) SDLTest_RandomUint32BoundaryValue ( 10 , 13 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint32BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 | | uresult = = 12 | | uresult = = 13 ,
" Validate result value for parameters (10,13,SDL_TRUE); expected: 10|11|12|13, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 */
uresult = ( Uint64 ) SDLTest_RandomUint32BoundaryValue ( 10 , 20 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint32BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 | | uresult = = 19 | | uresult = = 20 ,
" Validate result value for parameters (10,20,SDL_TRUE); expected: 10|11|19|20, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(20, 10, SDL_TRUE) returns 10, 11, 19 or 20 */
uresult = ( Uint64 ) SDLTest_RandomUint32BoundaryValue ( 20 , 10 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint32BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 | | uresult = = 19 | | uresult = = 20 ,
" Validate result value for parameters (20,10,SDL_TRUE); expected: 10|11|19|20, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(1, 20, SDL_FALSE) returns 0, 21 */
uresult = ( Uint64 ) SDLTest_RandomUint32BoundaryValue ( 1 , 20 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint32BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 0 | | uresult = = 21 ,
" Validate result value for parameters (1,20,SDL_FALSE); expected: 0|21, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(0, 99, SDL_FALSE) returns 100 */
uresult = ( Uint64 ) SDLTest_RandomUint32BoundaryValue ( 0 , 99 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint32BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 100 ,
" Validate result value for parameters (0,99,SDL_FALSE); expected: 100, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(1, 0xffffffff, SDL_FALSE) returns 0 (no error) */
uresult = ( Uint64 ) SDLTest_RandomUint32BoundaryValue ( 1 , 0xffffffff , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint32BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 0 ,
" Validate result value for parameters (1,0xffffffff,SDL_FALSE); expected: 0, got: % " SDL_PRIs64 , uresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError = = NULL | | lastError [ 0 ] = = ' \0 ' , " Validate no error message was set " ) ;
/* RandomUintXBoundaryValue(0, 0xfffffffe, SDL_FALSE) returns 0xffffffff (no error) */
uresult = ( Uint64 ) SDLTest_RandomUint32BoundaryValue ( 0 , 0xfffffffe , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint32BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 0xffffffff ,
" Validate result value for parameters (0,0xfffffffe,SDL_FALSE); expected: 0xffffffff, got: % " SDL_PRIs64 , uresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError = = NULL | | lastError [ 0 ] = = ' \0 ' , " Validate no error message was set " ) ;
/* RandomUintXBoundaryValue(0, 0xffffffff, SDL_FALSE) returns 0 (sets error) */
uresult = ( Uint64 ) SDLTest_RandomUint32BoundaryValue ( 0 , 0xffffffff , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint32BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 0 ,
" Validate result value for parameters(0,0xffffffff,SDL_FALSE); expected: 0, got: % " SDL_PRIs64 , uresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError ! = NULL & & SDL_strcmp ( lastError , expectedError ) = = 0 ,
" SDL_GetError(): expected message '%s', was message: '%s' " ,
expectedError ,
lastError ) ;
/* Clear error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
return TEST_COMPLETED ;
}
/*
* @ brief Calls to random boundary number generators for Uint64
*/
int
sdltest_randomBoundaryNumberUint64 ( void * arg )
{
const char * expectedError = " That operation is not supported " ;
char * lastError ;
Uint64 uresult ;
/* Clean error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
/* RandomUintXBoundaryValue(10, 10, SDL_TRUE) returns 10 */
uresult = ( Uint64 ) SDLTest_RandomUint64BoundaryValue ( 10 , 10 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint64BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 ,
" Validate result value for parameters (10,10,SDL_TRUE); expected: 10, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(10, 11, SDL_TRUE) returns 10, 11 */
uresult = ( Uint64 ) SDLTest_RandomUint64BoundaryValue ( 10 , 11 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint64BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 ,
" Validate result value for parameters (10,11,SDL_TRUE); expected: 10|11, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(10, 12, SDL_TRUE) returns 10, 11, 12 */
uresult = ( Uint64 ) SDLTest_RandomUint64BoundaryValue ( 10 , 12 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint64BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 | | uresult = = 12 ,
" Validate result value for parameters (10,12,SDL_TRUE); expected: 10|11|12, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(10, 13, SDL_TRUE) returns 10, 11, 12, 13 */
uresult = ( Uint64 ) SDLTest_RandomUint64BoundaryValue ( 10 , 13 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint64BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 | | uresult = = 12 | | uresult = = 13 ,
" Validate result value for parameters (10,13,SDL_TRUE); expected: 10|11|12|13, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 */
uresult = ( Uint64 ) SDLTest_RandomUint64BoundaryValue ( 10 , 20 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint64BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 | | uresult = = 19 | | uresult = = 20 ,
" Validate result value for parameters (10,20,SDL_TRUE); expected: 10|11|19|20, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(20, 10, SDL_TRUE) returns 10, 11, 19 or 20 */
uresult = ( Uint64 ) SDLTest_RandomUint64BoundaryValue ( 20 , 10 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint64BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 10 | | uresult = = 11 | | uresult = = 19 | | uresult = = 20 ,
" Validate result value for parameters (20,10,SDL_TRUE); expected: 10|11|19|20, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(1, 20, SDL_FALSE) returns 0, 21 */
uresult = ( Uint64 ) SDLTest_RandomUint64BoundaryValue ( 1 , 20 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint64BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 0 | | uresult = = 21 ,
" Validate result value for parameters (1,20,SDL_FALSE); expected: 0|21, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(0, 99, SDL_FALSE) returns 100 */
uresult = ( Uint64 ) SDLTest_RandomUint64BoundaryValue ( 0 , 99 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint64BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 100 ,
" Validate result value for parameters (0,99,SDL_FALSE); expected: 100, got: % " SDL_PRIs64 , uresult ) ;
/* RandomUintXBoundaryValue(1, 0xffffffffffffffff, SDL_FALSE) returns 0 (no error) */
uresult = ( Uint64 ) SDLTest_RandomUint64BoundaryValue ( 1 , ( Uint64 ) 0xffffffffffffffffULL , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint64BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 0 ,
" Validate result value for parameters (1,0xffffffffffffffff,SDL_FALSE); expected: 0, got: % " SDL_PRIs64 , uresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError = = NULL | | lastError [ 0 ] = = ' \0 ' , " Validate no error message was set " ) ;
/* RandomUintXBoundaryValue(0, 0xfffffffffffffffe, SDL_FALSE) returns 0xffffffffffffffff (no error) */
uresult = ( Uint64 ) SDLTest_RandomUint64BoundaryValue ( 0 , ( Uint64 ) 0xfffffffffffffffeULL , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint64BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = ( Uint64 ) 0xffffffffffffffffULL ,
" Validate result value for parameters (0,0xfffffffffffffffe,SDL_FALSE); expected: 0xffffffffffffffff, got: % " SDL_PRIs64 , uresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError = = NULL | | lastError [ 0 ] = = ' \0 ' , " Validate no error message was set " ) ;
/* RandomUintXBoundaryValue(0, 0xffffffffffffffff, SDL_FALSE) returns 0 (sets error) */
uresult = ( Uint64 ) SDLTest_RandomUint64BoundaryValue ( 0 , ( Uint64 ) 0xffffffffffffffffULL , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomUint64BoundaryValue " ) ;
SDLTest_AssertCheck (
uresult = = 0 ,
" Validate result value for parameters(0,0xffffffffffffffff,SDL_FALSE); expected: 0, got: % " SDL_PRIs64 , uresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError ! = NULL & & SDL_strcmp ( lastError , expectedError ) = = 0 ,
" SDL_GetError(): expected message '%s', was message: '%s' " ,
expectedError ,
lastError ) ;
/* Clear error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
return TEST_COMPLETED ;
}
/*
* @ brief Calls to random boundary number generators for Sint8
*/
int
sdltest_randomBoundaryNumberSint8 ( void * arg )
{
const char * expectedError = " That operation is not supported " ;
char * lastError ;
Sint64 sresult ;
/* Clean error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
/* RandomSintXBoundaryValue(10, 10, SDL_TRUE) returns 10 */
sresult = ( Sint64 ) SDLTest_RandomSint8BoundaryValue ( 10 , 10 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint8BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 ,
" Validate result value for parameters (10,10,SDL_TRUE); expected: 10, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(10, 11, SDL_TRUE) returns 10, 11 */
sresult = ( Sint64 ) SDLTest_RandomSint8BoundaryValue ( 10 , 11 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint8BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 ,
" Validate result value for parameters (10,11,SDL_TRUE); expected: 10|11, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(10, 12, SDL_TRUE) returns 10, 11, 12 */
sresult = ( Sint64 ) SDLTest_RandomSint8BoundaryValue ( 10 , 12 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint8BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 | | sresult = = 12 ,
" Validate result value for parameters (10,12,SDL_TRUE); expected: 10|11|12, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(10, 13, SDL_TRUE) returns 10, 11, 12, 13 */
sresult = ( Sint64 ) SDLTest_RandomSint8BoundaryValue ( 10 , 13 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint8BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 | | sresult = = 12 | | sresult = = 13 ,
" Validate result value for parameters (10,13,SDL_TRUE); expected: 10|11|12|13, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 */
sresult = ( Sint64 ) SDLTest_RandomSint8BoundaryValue ( 10 , 20 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint8BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 | | sresult = = 19 | | sresult = = 20 ,
" Validate result value for parameters (10,20,SDL_TRUE); expected: 10|11|19|20, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(20, 10, SDL_TRUE) returns 10, 11, 19 or 20 */
sresult = ( Sint64 ) SDLTest_RandomSint8BoundaryValue ( 20 , 10 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint8BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 | | sresult = = 19 | | sresult = = 20 ,
" Validate result value for parameters (20,10,SDL_TRUE); expected: 10|11|19|20, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(1, 20, SDL_FALSE) returns 0, 21 */
sresult = ( Sint64 ) SDLTest_RandomSint8BoundaryValue ( 1 , 20 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint8BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 0 | | sresult = = 21 ,
" Validate result value for parameters (1,20,SDL_FALSE); expected: 0|21, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(SCHAR_MIN, 99, SDL_FALSE) returns 100 */
sresult = ( Sint64 ) SDLTest_RandomSint8BoundaryValue ( SCHAR_MIN , 99 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint8BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 100 ,
" Validate result value for parameters (SCHAR_MIN,99,SDL_FALSE); expected: 100, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(SCHAR_MIN + 1, SCHAR_MAX, SDL_FALSE) returns SCHAR_MIN (no error) */
sresult = ( Sint64 ) SDLTest_RandomSint8BoundaryValue ( SCHAR_MIN + 1 , SCHAR_MAX , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint8BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = SCHAR_MIN ,
" Validate result value for parameters (SCHAR_MIN + 1,SCHAR_MAX,SDL_FALSE); expected: %d, got: % " SDL_PRIs64 , SCHAR_MIN , sresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError = = NULL | | lastError [ 0 ] = = ' \0 ' , " Validate no error message was set " ) ;
/* RandomSintXBoundaryValue(SCHAR_MIN, SCHAR_MAX - 1, SDL_FALSE) returns SCHAR_MAX (no error) */
sresult = ( Sint64 ) SDLTest_RandomSint8BoundaryValue ( SCHAR_MIN , SCHAR_MAX - 1 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint8BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = SCHAR_MAX ,
" Validate result value for parameters (SCHAR_MIN,SCHAR_MAX - 1,SDL_FALSE); expected: %d, got: % " SDL_PRIs64 , SCHAR_MAX , sresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError = = NULL | | lastError [ 0 ] = = ' \0 ' , " Validate no error message was set " ) ;
/* RandomSintXBoundaryValue(SCHAR_MIN, SCHAR_MAX, SDL_FALSE) returns SCHAR_MIN (sets error) */
sresult = ( Sint64 ) SDLTest_RandomSint8BoundaryValue ( SCHAR_MIN , SCHAR_MAX , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint8BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = SCHAR_MIN ,
" Validate result value for parameters(SCHAR_MIN,SCHAR_MAX,SDL_FALSE); expected: %d, got: % " SDL_PRIs64 , SCHAR_MIN , sresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError ! = NULL & & SDL_strcmp ( lastError , expectedError ) = = 0 ,
" SDL_GetError(): expected message '%s', was message: '%s' " ,
expectedError ,
lastError ) ;
/* Clear error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
return TEST_COMPLETED ;
}
/*
* @ brief Calls to random boundary number generators for Sint16
*/
int
sdltest_randomBoundaryNumberSint16 ( void * arg )
{
const char * expectedError = " That operation is not supported " ;
char * lastError ;
Sint64 sresult ;
/* Clean error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
/* RandomSintXBoundaryValue(10, 10, SDL_TRUE) returns 10 */
sresult = ( Sint64 ) SDLTest_RandomSint16BoundaryValue ( 10 , 10 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint16BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 ,
" Validate result value for parameters (10,10,SDL_TRUE); expected: 10, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(10, 11, SDL_TRUE) returns 10, 11 */
sresult = ( Sint64 ) SDLTest_RandomSint16BoundaryValue ( 10 , 11 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint16BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 ,
" Validate result value for parameters (10,11,SDL_TRUE); expected: 10|11, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(10, 12, SDL_TRUE) returns 10, 11, 12 */
sresult = ( Sint64 ) SDLTest_RandomSint16BoundaryValue ( 10 , 12 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint16BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 | | sresult = = 12 ,
" Validate result value for parameters (10,12,SDL_TRUE); expected: 10|11|12, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(10, 13, SDL_TRUE) returns 10, 11, 12, 13 */
sresult = ( Sint64 ) SDLTest_RandomSint16BoundaryValue ( 10 , 13 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint16BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 | | sresult = = 12 | | sresult = = 13 ,
" Validate result value for parameters (10,13,SDL_TRUE); expected: 10|11|12|13, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 */
sresult = ( Sint64 ) SDLTest_RandomSint16BoundaryValue ( 10 , 20 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint16BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 | | sresult = = 19 | | sresult = = 20 ,
" Validate result value for parameters (10,20,SDL_TRUE); expected: 10|11|19|20, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(20, 10, SDL_TRUE) returns 10, 11, 19 or 20 */
sresult = ( Sint64 ) SDLTest_RandomSint16BoundaryValue ( 20 , 10 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint16BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 | | sresult = = 19 | | sresult = = 20 ,
" Validate result value for parameters (20,10,SDL_TRUE); expected: 10|11|19|20, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(1, 20, SDL_FALSE) returns 0, 21 */
sresult = ( Sint64 ) SDLTest_RandomSint16BoundaryValue ( 1 , 20 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint16BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 0 | | sresult = = 21 ,
" Validate result value for parameters (1,20,SDL_FALSE); expected: 0|21, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(SHRT_MIN, 99, SDL_FALSE) returns 100 */
sresult = ( Sint64 ) SDLTest_RandomSint16BoundaryValue ( SHRT_MIN , 99 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint16BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 100 ,
" Validate result value for parameters (SHRT_MIN,99,SDL_FALSE); expected: 100, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(SHRT_MIN + 1, SHRT_MAX, SDL_FALSE) returns SHRT_MIN (no error) */
sresult = ( Sint64 ) SDLTest_RandomSint16BoundaryValue ( SHRT_MIN + 1 , SHRT_MAX , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint16BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = SHRT_MIN ,
" Validate result value for parameters (SHRT_MIN+1,SHRT_MAX,SDL_FALSE); expected: %d, got: % " SDL_PRIs64 , SHRT_MIN , sresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError = = NULL | | lastError [ 0 ] = = ' \0 ' , " Validate no error message was set " ) ;
/* RandomSintXBoundaryValue(SHRT_MIN, SHRT_MAX - 1, SDL_FALSE) returns SHRT_MAX (no error) */
sresult = ( Sint64 ) SDLTest_RandomSint16BoundaryValue ( SHRT_MIN , SHRT_MAX - 1 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint16BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = SHRT_MAX ,
" Validate result value for parameters (SHRT_MIN,SHRT_MAX - 1,SDL_FALSE); expected: %d, got: % " SDL_PRIs64 , SHRT_MAX , sresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError = = NULL | | lastError [ 0 ] = = ' \0 ' , " Validate no error message was set " ) ;
/* RandomSintXBoundaryValue(SHRT_MIN, SHRT_MAX, SDL_FALSE) returns 0 (sets error) */
sresult = ( Sint64 ) SDLTest_RandomSint16BoundaryValue ( SHRT_MIN , SHRT_MAX , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint16BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = SHRT_MIN ,
" Validate result value for parameters(SHRT_MIN,SHRT_MAX,SDL_FALSE); expected: %d, got: % " SDL_PRIs64 , SHRT_MIN , sresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError ! = NULL & & SDL_strcmp ( lastError , expectedError ) = = 0 ,
" SDL_GetError(): expected message '%s', was message: '%s' " ,
expectedError ,
lastError ) ;
/* Clear error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
return TEST_COMPLETED ;
}
/*
* @ brief Calls to random boundary number generators for Sint32
*/
int
sdltest_randomBoundaryNumberSint32 ( void * arg )
{
const char * expectedError = " That operation is not supported " ;
char * lastError ;
Sint64 sresult ;
# if ((ULONG_MAX) == (UINT_MAX))
Sint32 long_min = LONG_MIN ;
Sint32 long_max = LONG_MAX ;
# else
Sint32 long_min = INT_MIN ;
Sint32 long_max = INT_MAX ;
# endif
/* Clean error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
/* RandomSintXBoundaryValue(10, 10, SDL_TRUE) returns 10 */
sresult = ( Sint64 ) SDLTest_RandomSint32BoundaryValue ( 10 , 10 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint32BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 ,
" Validate result value for parameters (10,10,SDL_TRUE); expected: 10, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(10, 11, SDL_TRUE) returns 10, 11 */
sresult = ( Sint64 ) SDLTest_RandomSint32BoundaryValue ( 10 , 11 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint32BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 ,
" Validate result value for parameters (10,11,SDL_TRUE); expected: 10|11, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(10, 12, SDL_TRUE) returns 10, 11, 12 */
sresult = ( Sint64 ) SDLTest_RandomSint32BoundaryValue ( 10 , 12 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint32BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 | | sresult = = 12 ,
" Validate result value for parameters (10,12,SDL_TRUE); expected: 10|11|12, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(10, 13, SDL_TRUE) returns 10, 11, 12, 13 */
sresult = ( Sint64 ) SDLTest_RandomSint32BoundaryValue ( 10 , 13 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint32BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 | | sresult = = 12 | | sresult = = 13 ,
" Validate result value for parameters (10,13,SDL_TRUE); expected: 10|11|12|13, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 */
sresult = ( Sint64 ) SDLTest_RandomSint32BoundaryValue ( 10 , 20 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint32BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 | | sresult = = 19 | | sresult = = 20 ,
" Validate result value for parameters (10,20,SDL_TRUE); expected: 10|11|19|20, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(20, 10, SDL_TRUE) returns 10, 11, 19 or 20 */
sresult = ( Sint64 ) SDLTest_RandomSint32BoundaryValue ( 20 , 10 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint32BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 | | sresult = = 19 | | sresult = = 20 ,
" Validate result value for parameters (20,10,SDL_TRUE); expected: 10|11|19|20, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(1, 20, SDL_FALSE) returns 0, 21 */
sresult = ( Sint64 ) SDLTest_RandomSint32BoundaryValue ( 1 , 20 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint32BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 0 | | sresult = = 21 ,
" Validate result value for parameters (1,20,SDL_FALSE); expected: 0|21, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(LONG_MIN, 99, SDL_FALSE) returns 100 */
sresult = ( Sint64 ) SDLTest_RandomSint32BoundaryValue ( long_min , 99 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint32BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 100 ,
" Validate result value for parameters (LONG_MIN,99,SDL_FALSE); expected: 100, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(LONG_MIN + 1, LONG_MAX, SDL_FALSE) returns LONG_MIN (no error) */
sresult = ( Sint64 ) SDLTest_RandomSint32BoundaryValue ( long_min + 1 , long_max , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint32BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = long_min ,
" Validate result value for parameters (LONG_MIN+1,LONG_MAX,SDL_FALSE); expected: %d, got: % " SDL_PRIs64 , long_min , sresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError = = NULL | | lastError [ 0 ] = = ' \0 ' , " Validate no error message was set " ) ;
/* RandomSintXBoundaryValue(LONG_MIN, LONG_MAX - 1, SDL_FALSE) returns LONG_MAX (no error) */
sresult = ( Sint64 ) SDLTest_RandomSint32BoundaryValue ( long_min , long_max - 1 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint32BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = long_max ,
" Validate result value for parameters (LONG_MIN,LONG_MAX - 1,SDL_FALSE); expected: %d, got: % " SDL_PRIs64 , long_max , sresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError = = NULL | | lastError [ 0 ] = = ' \0 ' , " Validate no error message was set " ) ;
/* RandomSintXBoundaryValue(LONG_MIN, LONG_MAX, SDL_FALSE) returns 0 (sets error) */
sresult = ( Sint64 ) SDLTest_RandomSint32BoundaryValue ( long_min , long_max , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint32BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = long_min ,
" Validate result value for parameters(LONG_MIN,LONG_MAX,SDL_FALSE); expected: %d, got: % " SDL_PRIs64 , long_min , sresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError ! = NULL & & SDL_strcmp ( lastError , expectedError ) = = 0 ,
" SDL_GetError(): expected message '%s', was message: '%s' " ,
expectedError ,
lastError ) ;
/* Clear error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
return TEST_COMPLETED ;
}
/*
* @ brief Calls to random boundary number generators for Sint64
*/
int
sdltest_randomBoundaryNumberSint64 ( void * arg )
{
const char * expectedError = " That operation is not supported " ;
char * lastError ;
Sint64 sresult ;
/* Clean error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
/* RandomSintXBoundaryValue(10, 10, SDL_TRUE) returns 10 */
sresult = ( Sint64 ) SDLTest_RandomSint64BoundaryValue ( 10 , 10 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint64BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 ,
" Validate result value for parameters (10,10,SDL_TRUE); expected: 10, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(10, 11, SDL_TRUE) returns 10, 11 */
sresult = ( Sint64 ) SDLTest_RandomSint64BoundaryValue ( 10 , 11 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint64BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 ,
" Validate result value for parameters (10,11,SDL_TRUE); expected: 10|11, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(10, 12, SDL_TRUE) returns 10, 11, 12 */
sresult = ( Sint64 ) SDLTest_RandomSint64BoundaryValue ( 10 , 12 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint64BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 | | sresult = = 12 ,
" Validate result value for parameters (10,12,SDL_TRUE); expected: 10|11|12, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(10, 13, SDL_TRUE) returns 10, 11, 12, 13 */
sresult = ( Sint64 ) SDLTest_RandomSint64BoundaryValue ( 10 , 13 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint64BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 | | sresult = = 12 | | sresult = = 13 ,
" Validate result value for parameters (10,13,SDL_TRUE); expected: 10|11|12|13, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 */
sresult = ( Sint64 ) SDLTest_RandomSint64BoundaryValue ( 10 , 20 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint64BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 | | sresult = = 19 | | sresult = = 20 ,
" Validate result value for parameters (10,20,SDL_TRUE); expected: 10|11|19|20, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(20, 10, SDL_TRUE) returns 10, 11, 19 or 20 */
sresult = ( Sint64 ) SDLTest_RandomSint64BoundaryValue ( 20 , 10 , SDL_TRUE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint64BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 10 | | sresult = = 11 | | sresult = = 19 | | sresult = = 20 ,
" Validate result value for parameters (20,10,SDL_TRUE); expected: 10|11|19|20, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(1, 20, SDL_FALSE) returns 0, 21 */
sresult = ( Sint64 ) SDLTest_RandomSint64BoundaryValue ( 1 , 20 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint64BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 0 | | sresult = = 21 ,
" Validate result value for parameters (1,20,SDL_FALSE); expected: 0|21, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(LLONG_MIN, 99, SDL_FALSE) returns 100 */
sresult = ( Sint64 ) SDLTest_RandomSint64BoundaryValue ( INT64_MIN , 99 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint64BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = 100 ,
" Validate result value for parameters (LLONG_MIN,99,SDL_FALSE); expected: 100, got: % " SDL_PRIs64 , sresult ) ;
/* RandomSintXBoundaryValue(LLONG_MIN + 1, LLONG_MAX, SDL_FALSE) returns LLONG_MIN (no error) */
sresult = ( Sint64 ) SDLTest_RandomSint64BoundaryValue ( INT64_MIN + 1 , INT64_MAX , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint64BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = INT64_MIN ,
" Validate result value for parameters (LLONG_MIN+1,LLONG_MAX,SDL_FALSE); expected: % " SDL_PRIs64 " , got: % " SDL_PRIs64 , INT64_MIN , sresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError = = NULL | | lastError [ 0 ] = = ' \0 ' , " Validate no error message was set " ) ;
/* RandomSintXBoundaryValue(LLONG_MIN, LLONG_MAX - 1, SDL_FALSE) returns LLONG_MAX (no error) */
sresult = ( Sint64 ) SDLTest_RandomSint64BoundaryValue ( INT64_MIN , INT64_MAX - 1 , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint64BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = INT64_MAX ,
" Validate result value for parameters (LLONG_MIN,LLONG_MAX - 1,SDL_FALSE); expected: % " SDL_PRIs64 " , got: % " SDL_PRIs64 , INT64_MAX , sresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError = = NULL | | lastError [ 0 ] = = ' \0 ' , " Validate no error message was set " ) ;
/* RandomSintXBoundaryValue(LLONG_MIN, LLONG_MAX, SDL_FALSE) returns 0 (sets error) */
sresult = ( Sint64 ) SDLTest_RandomSint64BoundaryValue ( INT64_MIN , INT64_MAX , SDL_FALSE ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomSint64BoundaryValue " ) ;
SDLTest_AssertCheck (
sresult = = INT64_MIN ,
" Validate result value for parameters(LLONG_MIN,LLONG_MAX,SDL_FALSE); expected: % " SDL_PRIs64 " , got: % " SDL_PRIs64 , INT64_MIN , sresult ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError ! = NULL & & SDL_strcmp ( lastError , expectedError ) = = 0 ,
" SDL_GetError(): expected message '%s', was message: '%s' " ,
expectedError ,
lastError ) ;
/* Clear error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
return TEST_COMPLETED ;
}
/**
* @ brief Calls to SDLTest_RandomIntegerInRange
*/
int
sdltest_randomIntegerInRange ( void * arg )
{
Sint32 min , max ;
Sint32 result ;
# if ((ULONG_MAX) == (UINT_MAX))
Sint32 long_min = LONG_MIN ;
Sint32 long_max = LONG_MAX ;
# else
Sint32 long_min = INT_MIN ;
Sint32 long_max = INT_MAX ;
# endif
/* Standard range */
min = ( Sint32 ) SDLTest_RandomSint16 ( ) ;
max = min + ( Sint32 ) SDLTest_RandomUint8 ( ) + 2 ;
result = SDLTest_RandomIntegerInRange ( min , max ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomIntegerInRange(min,max) " ) ;
SDLTest_AssertCheck ( min < = result & & result < = max , " Validated returned value; expected: [%d,%d], got: %d " , min , max , result ) ;
/* One Range */
min = ( Sint32 ) SDLTest_RandomSint16 ( ) ;
max = min + 1 ;
result = SDLTest_RandomIntegerInRange ( min , max ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomIntegerInRange(min,min+1) " ) ;
SDLTest_AssertCheck ( min < = result & & result < = max , " Validated returned value; expected: [%d,%d], got: %d " , min , max , result ) ;
/* Zero range */
min = ( Sint32 ) SDLTest_RandomSint16 ( ) ;
max = min ;
result = SDLTest_RandomIntegerInRange ( min , max ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomIntegerInRange(min,min) " ) ;
SDLTest_AssertCheck ( min = = result , " Validated returned value; expected: %d, got: %d " , min , result ) ;
/* Zero range at zero */
min = 0 ;
max = 0 ;
result = SDLTest_RandomIntegerInRange ( min , max ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomIntegerInRange(0,0) " ) ;
SDLTest_AssertCheck ( result = = 0 , " Validated returned value; expected: 0, got: %d " , result ) ;
/* Swapped min-max */
min = ( Sint32 ) SDLTest_RandomSint16 ( ) ;
max = min + ( Sint32 ) SDLTest_RandomUint8 ( ) + 2 ;
result = SDLTest_RandomIntegerInRange ( max , min ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomIntegerInRange(max,min) " ) ;
SDLTest_AssertCheck ( min < = result & & result < = max , " Validated returned value; expected: [%d,%d], got: %d " , min , max , result ) ;
/* Range with min at integer limit */
min = long_min ;
max = long_max + ( Sint32 ) SDLTest_RandomSint16 ( ) ;
result = SDLTest_RandomIntegerInRange ( min , max ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomIntegerInRange(SINT32_MIN,...) " ) ;
SDLTest_AssertCheck ( min < = result & & result < = max , " Validated returned value; expected: [%d,%d], got: %d " , min , max , result ) ;
/* Range with max at integer limit */
min = long_min - ( Sint32 ) SDLTest_RandomSint16 ( ) ;
max = long_max ;
result = SDLTest_RandomIntegerInRange ( min , max ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomIntegerInRange(...,SINT32_MAX) " ) ;
SDLTest_AssertCheck ( min < = result & & result < = max , " Validated returned value; expected: [%d,%d], got: %d " , min , max , result ) ;
/* Full integer range */
min = long_min ;
max = long_max ;
result = SDLTest_RandomIntegerInRange ( min , max ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomIntegerInRange(SINT32_MIN,SINT32_MAX) " ) ;
SDLTest_AssertCheck ( min < = result & & result < = max , " Validated returned value; expected: [%d,%d], got: %d " , min , max , result ) ;
return TEST_COMPLETED ;
}
/**
* @ brief Calls to SDLTest_RandomAsciiString
*/
int
sdltest_randomAsciiString ( void * arg )
{
char * result ;
size_t len ;
int nonAsciiCharacters ;
size_t i ;
result = SDLTest_RandomAsciiString ( ) ;
SDLTest_AssertPass ( " Call to SDLTest_RandomAsciiString() " ) ;
SDLTest_AssertCheck ( result ! = NULL , " Validate that result is not NULL " ) ;
if ( result ! = NULL ) {
len = SDL_strlen ( result ) ;
SDLTest_AssertCheck ( len > = 1 & & len < = 255 , " Validate that result length; expected: len=[1,255], got: %d " , ( int ) len ) ;
nonAsciiCharacters = 0 ;
for ( i = 0 ; i < len ; i + + ) {
if ( iscntrl ( result [ i ] ) ) {
nonAsciiCharacters + + ;
}
}
SDLTest_AssertCheck ( nonAsciiCharacters = = 0 , " Validate that result does not contain non-Ascii characters, got: %d " , nonAsciiCharacters ) ;
if ( nonAsciiCharacters ) {
SDLTest_LogError ( " Invalid result from generator: '%s' " , result ) ;
}
SDL_free ( result ) ;
}
return TEST_COMPLETED ;
}
/**
* @ brief Calls to SDLTest_RandomAsciiStringWithMaximumLength
*/
int
sdltest_randomAsciiStringWithMaximumLength ( void * arg )
{
const char * expectedError = " Parameter 'maxLength' is invalid " ;
char * lastError ;
char * result ;
size_t targetLen ;
size_t len ;
int nonAsciiCharacters ;
size_t i ;
targetLen = 16 + SDLTest_RandomUint8 ( ) ;
result = SDLTest_RandomAsciiStringWithMaximumLength ( ( int ) targetLen ) ;
2021-04-20 21:40:33 +02:00
SDLTest_AssertPass ( " Call to SDLTest_RandomAsciiStringWithMaximumLength(%d) " , ( int ) targetLen ) ;
2021-04-18 05:35:25 +02:00
SDLTest_AssertCheck ( result ! = NULL , " Validate that result is not NULL " ) ;
if ( result ! = NULL ) {
len = SDL_strlen ( result ) ;
SDLTest_AssertCheck ( len > = 1 & & len < = targetLen , " Validate that result length; expected: len=[1,%d], got: %d " , ( int ) targetLen , ( int ) len ) ;
nonAsciiCharacters = 0 ;
for ( i = 0 ; i < len ; i + + ) {
if ( iscntrl ( result [ i ] ) ) {
nonAsciiCharacters + + ;
}
}
SDLTest_AssertCheck ( nonAsciiCharacters = = 0 , " Validate that result does not contain non-Ascii characters, got: %d " , nonAsciiCharacters ) ;
if ( nonAsciiCharacters ) {
SDLTest_LogError ( " Invalid result from generator: '%s' " , result ) ;
}
SDL_free ( result ) ;
}
/* Negative test */
targetLen = 0 ;
result = SDLTest_RandomAsciiStringWithMaximumLength ( ( int ) targetLen ) ;
2021-04-20 21:40:33 +02:00
SDLTest_AssertPass ( " Call to SDLTest_RandomAsciiStringWithMaximumLength(%d) " , ( int ) targetLen ) ;
2021-04-18 05:35:25 +02:00
SDLTest_AssertCheck ( result = = NULL , " Validate that result is NULL " ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError ! = NULL & & SDL_strcmp ( lastError , expectedError ) = = 0 ,
" SDL_GetError(): expected message '%s', was message: '%s' " ,
expectedError ,
lastError ) ;
/* Clear error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
return TEST_COMPLETED ;
}
/**
* @ brief Calls to SDLTest_RandomAsciiStringOfSize
*/
int
sdltest_randomAsciiStringOfSize ( void * arg )
{
const char * expectedError = " Parameter 'size' is invalid " ;
char * lastError ;
char * result ;
size_t targetLen ;
size_t len ;
int nonAsciiCharacters ;
size_t i ;
/* Positive test */
targetLen = 16 + SDLTest_RandomUint8 ( ) ;
result = SDLTest_RandomAsciiStringOfSize ( ( int ) targetLen ) ;
2021-04-20 21:40:33 +02:00
SDLTest_AssertPass ( " Call to SDLTest_RandomAsciiStringOfSize(%d) " , ( int ) targetLen ) ;
2021-04-18 05:35:25 +02:00
SDLTest_AssertCheck ( result ! = NULL , " Validate that result is not NULL " ) ;
if ( result ! = NULL ) {
len = SDL_strlen ( result ) ;
SDLTest_AssertCheck ( len = = targetLen , " Validate that result length; expected: len=%d, got: %d " , ( int ) targetLen , ( int ) len ) ;
nonAsciiCharacters = 0 ;
for ( i = 0 ; i < len ; i + + ) {
if ( iscntrl ( result [ i ] ) ) {
nonAsciiCharacters + + ;
}
}
SDLTest_AssertCheck ( nonAsciiCharacters = = 0 , " Validate that result does not contain non-ASCII characters, got: %d " , nonAsciiCharacters ) ;
if ( nonAsciiCharacters ) {
SDLTest_LogError ( " Invalid result from generator: '%s' " , result ) ;
}
SDL_free ( result ) ;
}
/* Negative test */
targetLen = 0 ;
result = SDLTest_RandomAsciiStringOfSize ( ( int ) targetLen ) ;
2021-04-20 21:40:33 +02:00
SDLTest_AssertPass ( " Call to SDLTest_RandomAsciiStringOfSize(%d) " , ( int ) targetLen ) ;
2021-04-18 05:35:25 +02:00
SDLTest_AssertCheck ( result = = NULL , " Validate that result is NULL " ) ;
lastError = ( char * ) SDL_GetError ( ) ;
SDLTest_AssertPass ( " SDL_GetError() " ) ;
SDLTest_AssertCheck ( lastError ! = NULL & & SDL_strcmp ( lastError , expectedError ) = = 0 ,
" SDL_GetError(): expected message '%s', was message: '%s' " ,
expectedError ,
lastError ) ;
/* Clear error messages */
SDL_ClearError ( ) ;
SDLTest_AssertPass ( " SDL_ClearError() " ) ;
return TEST_COMPLETED ;
}
/* ================= Test References ================== */
/* SDL_test test cases */
static const SDLTest_TestCaseReference sdltestTest1 =
{ ( SDLTest_TestCaseFp ) sdltest_getFuzzerInvocationCount , " sdltest_getFuzzerInvocationCount " , " Call to sdltest_GetFuzzerInvocationCount " , TEST_ENABLED } ;
static const SDLTest_TestCaseReference sdltestTest2 =
{ ( SDLTest_TestCaseFp ) sdltest_randomNumber , " sdltest_randomNumber " , " Calls to random number generators " , TEST_ENABLED } ;
static const SDLTest_TestCaseReference sdltestTest3 =
{ ( SDLTest_TestCaseFp ) sdltest_randomBoundaryNumberUint8 , " sdltest_randomBoundaryNumberUint8 " , " Calls to random boundary number generators for Uint8 " , TEST_ENABLED } ;
static const SDLTest_TestCaseReference sdltestTest4 =
{ ( SDLTest_TestCaseFp ) sdltest_randomBoundaryNumberUint16 , " sdltest_randomBoundaryNumberUint16 " , " Calls to random boundary number generators for Uint16 " , TEST_ENABLED } ;
static const SDLTest_TestCaseReference sdltestTest5 =
{ ( SDLTest_TestCaseFp ) sdltest_randomBoundaryNumberUint32 , " sdltest_randomBoundaryNumberUint32 " , " Calls to random boundary number generators for Uint32 " , TEST_ENABLED } ;
static const SDLTest_TestCaseReference sdltestTest6 =
{ ( SDLTest_TestCaseFp ) sdltest_randomBoundaryNumberUint64 , " sdltest_randomBoundaryNumberUint64 " , " Calls to random boundary number generators for Uint64 " , TEST_ENABLED } ;
static const SDLTest_TestCaseReference sdltestTest7 =
{ ( SDLTest_TestCaseFp ) sdltest_randomBoundaryNumberSint8 , " sdltest_randomBoundaryNumberSint8 " , " Calls to random boundary number generators for Sint8 " , TEST_ENABLED } ;
static const SDLTest_TestCaseReference sdltestTest8 =
{ ( SDLTest_TestCaseFp ) sdltest_randomBoundaryNumberSint16 , " sdltest_randomBoundaryNumberSint16 " , " Calls to random boundary number generators for Sint16 " , TEST_ENABLED } ;
static const SDLTest_TestCaseReference sdltestTest9 =
{ ( SDLTest_TestCaseFp ) sdltest_randomBoundaryNumberSint32 , " sdltest_randomBoundaryNumberSint32 " , " Calls to random boundary number generators for Sint32 " , TEST_ENABLED } ;
static const SDLTest_TestCaseReference sdltestTest10 =
{ ( SDLTest_TestCaseFp ) sdltest_randomBoundaryNumberSint64 , " sdltest_randomBoundaryNumberSint64 " , " Calls to random boundary number generators for Sint64 " , TEST_ENABLED } ;
static const SDLTest_TestCaseReference sdltestTest11 =
{ ( SDLTest_TestCaseFp ) sdltest_randomIntegerInRange , " sdltest_randomIntegerInRange " , " Calls to ranged random number generator " , TEST_ENABLED } ;
static const SDLTest_TestCaseReference sdltestTest12 =
{ ( SDLTest_TestCaseFp ) sdltest_randomAsciiString , " sdltest_randomAsciiString " , " Calls to default ASCII string generator " , TEST_ENABLED } ;
static const SDLTest_TestCaseReference sdltestTest13 =
{ ( SDLTest_TestCaseFp ) sdltest_randomAsciiStringWithMaximumLength , " sdltest_randomAsciiStringWithMaximumLength " , " Calls to random maximum length ASCII string generator " , TEST_ENABLED } ;
static const SDLTest_TestCaseReference sdltestTest14 =
{ ( SDLTest_TestCaseFp ) sdltest_randomAsciiStringOfSize , " sdltest_randomAsciiStringOfSize " , " Calls to fixed size ASCII string generator " , TEST_ENABLED } ;
static const SDLTest_TestCaseReference sdltestTest15 =
{ ( SDLTest_TestCaseFp ) sdltest_generateRunSeed , " sdltest_generateRunSeed " , " Checks internal harness function SDLTest_GenerateRunSeed " , TEST_ENABLED } ;
/* Sequence of SDL_test test cases */
static const SDLTest_TestCaseReference * sdltestTests [ ] = {
& sdltestTest1 , & sdltestTest2 , & sdltestTest3 , & sdltestTest4 , & sdltestTest5 , & sdltestTest6 ,
& sdltestTest7 , & sdltestTest8 , & sdltestTest9 , & sdltestTest10 , & sdltestTest11 , & sdltestTest12 ,
& sdltestTest13 , & sdltestTest14 , & sdltestTest15 , NULL
} ;
/* SDL_test test suite (global) */
SDLTest_TestSuiteReference sdltestTestSuite = {
" SDLtest " ,
NULL ,
sdltestTests ,
NULL
} ;