mirror of
https://github.com/yawut/SDL.git
synced 2026-06-11 03:03:18 -05:00
Added random number generators for Uint8, Sint8, Uint16, Sint16,
Uint64 and Sint64.
This commit is contained in:
parent
62265a4047
commit
97bfb01768
|
|
@ -26,6 +26,9 @@
|
|||
|
||||
#include "fuzzer.h"
|
||||
|
||||
/*!
|
||||
* Note: doxygen documentation markup is in the header file.
|
||||
*/
|
||||
|
||||
//! context for test-specific random number generator
|
||||
static RND_CTX rndContext;
|
||||
|
|
@ -105,6 +108,30 @@ DeinitFuzzer()
|
|||
|
||||
}
|
||||
|
||||
Uint8
|
||||
RandomUint8()
|
||||
{
|
||||
return (Uint8) utl_randomInt(&rndContext) & 0x000000FF;
|
||||
}
|
||||
|
||||
Sint8
|
||||
RandomSint8()
|
||||
{
|
||||
return (Sint8) utl_randomInt(&rndContext) & 0x000000FF;
|
||||
}
|
||||
|
||||
Uint16
|
||||
RandomUint16()
|
||||
{
|
||||
return (Uint16) utl_randomInt(&rndContext) & 0x0000FFFF;
|
||||
}
|
||||
|
||||
Sint16
|
||||
RandomSint16()
|
||||
{
|
||||
return (Sint16) utl_randomInt(&rndContext) & 0x0000FFFF;
|
||||
}
|
||||
|
||||
Sint32
|
||||
RandomInteger()
|
||||
{
|
||||
|
|
@ -117,6 +144,36 @@ RandomPositiveInteger()
|
|||
return (Uint32) utl_randomInt(&rndContext);
|
||||
}
|
||||
|
||||
Uint64
|
||||
RandomUint64()
|
||||
{
|
||||
Uint8 string[16];
|
||||
|
||||
int counter = 0;
|
||||
for( ; counter < 16; ++counter) {
|
||||
string[counter] = (Uint8) RandomIntegerInRange(0, 255);
|
||||
}
|
||||
|
||||
Uint64 *value = (Uint64 *)string;
|
||||
return value[0];
|
||||
}
|
||||
|
||||
Sint64
|
||||
RandomSint64()
|
||||
{
|
||||
Uint8 string[16];
|
||||
|
||||
int counter = 0;
|
||||
for( ; counter < 16; ++counter) {
|
||||
string[counter] = (Uint8) RandomIntegerInRange(0, 255);
|
||||
}
|
||||
|
||||
Sint64 *value = (Sint64 *)string;
|
||||
return value[0];
|
||||
}
|
||||
|
||||
|
||||
|
||||
Sint32
|
||||
RandomIntegerInRange(Sint32 pMin, Sint32 pMax)
|
||||
{
|
||||
|
|
@ -507,6 +564,10 @@ RandomSint64BoundaryValue(Sint64 boundary1, Sint64 boundary2, SDL_bool validDoma
|
|||
return retVal;
|
||||
}
|
||||
|
||||
float RandomFloat() {
|
||||
return (float) utl_randomInt(&rndContext) / UINT_MAX;
|
||||
}
|
||||
|
||||
char *
|
||||
RandomAsciiString()
|
||||
{
|
||||
|
|
@ -521,7 +582,7 @@ RandomAsciiStringWithMaximumLength(int maxSize)
|
|||
}
|
||||
|
||||
int size = (abs(RandomInteger()) % (maxSize + 1)) + 1;
|
||||
char *string = SDL_malloc(size * sizeof(size));
|
||||
char *string = SDL_malloc(size * sizeof(char));
|
||||
|
||||
int counter = 0;
|
||||
for( ; counter < size; ++counter) {
|
||||
|
|
|
|||
|
|
@ -40,6 +40,36 @@ void InitFuzzer(Uint64 execKey);
|
|||
void DeinitFuzzer();
|
||||
|
||||
|
||||
/*!
|
||||
* Returns a random Uint8
|
||||
*
|
||||
* \returns Generated integer
|
||||
*/
|
||||
Uint8 RandomUint8();
|
||||
|
||||
/*!
|
||||
* Returns a random Sint8
|
||||
*
|
||||
* \returns Generated signed integer
|
||||
*/
|
||||
Sint8 RandomSint8();
|
||||
|
||||
|
||||
/*!
|
||||
* Returns a random Uint16
|
||||
*
|
||||
* \returns Generated integer
|
||||
*/
|
||||
Uint16 RandomUint16();
|
||||
|
||||
/*!
|
||||
* Returns a random Sint16
|
||||
*
|
||||
* \returns Generated signed integer
|
||||
*/
|
||||
Sint16 RandomSint16();
|
||||
|
||||
|
||||
/*!
|
||||
* Returns a random integer
|
||||
*
|
||||
|
|
@ -55,6 +85,25 @@ Sint32 RandomInteger();
|
|||
*/
|
||||
Uint32 RandomPositiveInteger();
|
||||
|
||||
/*!
|
||||
* Returns random Uint64.
|
||||
*
|
||||
* \returns Generated integer
|
||||
*/
|
||||
Uint64 RandomUint64();
|
||||
|
||||
|
||||
/*!
|
||||
* Returns random Sint64.
|
||||
*
|
||||
* \returns Generated signed integer
|
||||
*/
|
||||
Sint64 RandomSint64();
|
||||
|
||||
/*!
|
||||
* Returns random float in range [0.0 - 1.0] (inclusive)
|
||||
*/
|
||||
float RandomFloat();
|
||||
|
||||
/*!
|
||||
* Returns a random boundary value for Uint8 within the given boundaries.
|
||||
|
|
|
|||
|
|
@ -100,6 +100,8 @@ dummycase1(void *arg)
|
|||
|
||||
//Log(0, "uint8 (same value): %d", RandomUint8BoundaryValue(200, 200, SDL_TRUE));
|
||||
|
||||
for(; 01 ; )
|
||||
printf("%d\n", RandomSint16());
|
||||
|
||||
for( ; 0 ; ) {
|
||||
//Log(0, "sint8: %d", RandomSint8BoundaryValue(-11, 10, SDL_TRUE));
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user