diff --git a/test/test-automation/src/libSDLtest/fuzzer/fuzzer.c b/test/test-automation/src/libSDLtest/fuzzer/fuzzer.c index 544bc5480..53726f4c9 100644 --- a/test/test-automation/src/libSDLtest/fuzzer/fuzzer.c +++ b/test/test-automation/src/libSDLtest/fuzzer/fuzzer.c @@ -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) { diff --git a/test/test-automation/src/libSDLtest/fuzzer/fuzzer.h b/test/test-automation/src/libSDLtest/fuzzer/fuzzer.h index 493f75474..a3692d388 100644 --- a/test/test-automation/src/libSDLtest/fuzzer/fuzzer.h +++ b/test/test-automation/src/libSDLtest/fuzzer/fuzzer.h @@ -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. diff --git a/test/test-automation/tests/testdummy/testdummy.c b/test/test-automation/tests/testdummy/testdummy.c index e2af1ad4a..e86769038 100644 --- a/test/test-automation/tests/testdummy/testdummy.c +++ b/test/test-automation/tests/testdummy/testdummy.c @@ -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));