Commit cdb6aa7f authored by Markus Kauppila's avatar Markus Kauppila

Fixes based on CR.

Some tests in rwops suite broken up to smaller tests.
parent 516b5e80
...@@ -57,8 +57,6 @@ GenerateExecKey(char *runSeed, char *suiteName, ...@@ -57,8 +57,6 @@ GenerateExecKey(char *runSeed, char *suiteName,
return -1; return -1;
} }
// Change to itoa
char iterationString[16]; char iterationString[16];
memset(iterationString, 0, sizeof(iterationString)); memset(iterationString, 0, sizeof(iterationString));
SDL_snprintf(iterationString, sizeof(iterationString) - 1, "%d", iterationNumber); SDL_snprintf(iterationString, sizeof(iterationString) - 1, "%d", iterationNumber);
...@@ -75,7 +73,7 @@ GenerateExecKey(char *runSeed, char *suiteName, ...@@ -75,7 +73,7 @@ GenerateExecKey(char *runSeed, char *suiteName,
char *buffer = SDL_malloc(entireString); char *buffer = SDL_malloc(entireString);
if(!buffer) { if(!buffer) {
return -1; return 0;
} }
SDL_snprintf(buffer, entireString, "%s/%s/%s/%d", runSeed, suiteName, SDL_snprintf(buffer, entireString, "%s/%s/%s/%d", runSeed, suiteName,
...@@ -89,9 +87,8 @@ GenerateExecKey(char *runSeed, char *suiteName, ...@@ -89,9 +87,8 @@ GenerateExecKey(char *runSeed, char *suiteName,
SDL_free(buffer); SDL_free(buffer);
Uint64 *keys = (Uint64 *)md5Context.digest; Uint64 *keys = (Uint64 *)md5Context.digest;
Uint64 key = keys[0];
return key; return keys[0];
} }
void void
...@@ -147,29 +144,25 @@ RandomPositiveInteger() ...@@ -147,29 +144,25 @@ RandomPositiveInteger()
Uint64 Uint64
RandomUint64() RandomUint64()
{ {
Uint8 string[16]; Uint64 value;
int counter = 0; Uint32 *vp = (Uint32*)&value;
for( ; counter < 16; ++counter) { vp[0] = RandomSint32();
string[counter] = (Uint8) RandomIntegerInRange(0, 255); vp[1] = RandomSint32();
}
Uint64 *value = (Uint64 *)string; return value;
return value[0];
} }
Sint64 Sint64
RandomSint64() RandomSint64()
{ {
Uint8 string[16]; Uint64 value;
int counter = 0; Uint32 *vp = (Uint32*)&value;
for( ; counter < 16; ++counter) { vp[0] = RandomSint32();
string[counter] = (Uint8) RandomIntegerInRange(0, 255); vp[1] = RandomSint32();
}
Sint64 *value = (Sint64 *)string; return value;
return value[0];
} }
...@@ -566,10 +559,33 @@ RandomSint64BoundaryValue(Sint64 boundary1, Sint64 boundary2, SDL_bool validDoma ...@@ -566,10 +559,33 @@ RandomSint64BoundaryValue(Sint64 boundary1, Sint64 boundary2, SDL_bool validDoma
return retVal; return retVal;
} }
float RandomFloat() { float
RandomUnitFloat()
{
return (float) utl_randomInt(&rndContext) / UINT_MAX; return (float) utl_randomInt(&rndContext) / UINT_MAX;
} }
double
RandomUnitDouble()
{
return (double) RandomUint64() / LLONG_MAX;
}
float
RandomFloat()
{
// \todo to be implemented
return 0.0f;
}
double
RandomDouble()
{
// \todo to be implemented
return 0.0f;
}
char * char *
RandomAsciiString() RandomAsciiString()
{ {
......
...@@ -27,6 +27,11 @@ ...@@ -27,6 +27,11 @@
#include "utl_md5.h" #include "utl_md5.h"
#include "utl_random.h" #include "utl_random.h"
/*!
* \file
* Note: fuzzer implementation uses static instance of random context
* internally which makes it thread-UNsafe.
*/
/*! /*!
* Inits the fuzzer for a test * Inits the fuzzer for a test
...@@ -103,8 +108,23 @@ Sint64 RandomSint64(); ...@@ -103,8 +108,23 @@ Sint64 RandomSint64();
/*! /*!
* Returns random float in range [0.0 - 1.0] (inclusive) * Returns random float in range [0.0 - 1.0] (inclusive)
*/ */
float RandomUnitFloat();
/*!
* Returns random double in range [0.0 - 1.0] (inclusive)
*/
double RandomUnitDouble();
/*!
* Returns random float
*/
float RandomFloat(); float RandomFloat();
/*!
* Returns random double
*/
double RandomDouble();
/*! /*!
* Returns a random boundary value for Uint8 within the given boundaries. * Returns a random boundary value for Uint8 within the given boundaries.
* Boundaries are inclusive, see the usage examples below. If validDomain * Boundaries are inclusive, see the usage examples below. If validDomain
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "../../include/SDL_test.h" #include "../../include/SDL_test.h"
// TODO create these at SetUp() and such TearDown()
const char* RWOPS_READ = "tests/testrwops/read"; const char* RWOPS_READ = "tests/testrwops/read";
const char* RWOPS_WRITE = "tests/testrwops/write"; const char* RWOPS_WRITE = "tests/testrwops/write";
...@@ -30,15 +31,22 @@ static const TestCaseReference test3 = ...@@ -30,15 +31,22 @@ static const TestCaseReference test3 =
(TestCaseReference){ "rwops_testConstMem", "Tests opening from (const) memory", TEST_ENABLED, 0, 0 }; (TestCaseReference){ "rwops_testConstMem", "Tests opening from (const) memory", TEST_ENABLED, 0, 0 };
static const TestCaseReference test4 = static const TestCaseReference test4 =
(TestCaseReference){ "rwops_testFile", "rwop sy", TEST_ENABLED, 0, 0 }; (TestCaseReference){ "rwops_testFileRead", "Tests reading from a file", TEST_ENABLED, 0, 0 };
static const TestCaseReference test5 = static const TestCaseReference test5 =
(TestCaseReference){ "rwops_testFP", "rwop sy", TEST_ENABLED, TEST_REQUIRES_STDIO, 0 }; (TestCaseReference){ "rwops_testFileWrite", "Test writing to a file", TEST_ENABLED, 0, 0 };
static const TestCaseReference test6 =
(TestCaseReference){ "rwops_testFPRead", "Test reading from stdio", TEST_ENABLED, TEST_REQUIRES_STDIO, 0 };
static const TestCaseReference test7 =
(TestCaseReference){ "rwops_testFPWrite", "Test writing to stdio", TEST_ENABLED, TEST_REQUIRES_STDIO, 0 };
/* Test suite */ /* Test suite */
extern const TestCaseReference *testSuite[] = { extern const TestCaseReference *testSuite[] = {
&test1, &test2, &test3, &test4, &test5, NULL &test1, &test2, &test3, &test4, &test5, &test6, &test7, NULL
}; };
TestCaseReference **QueryTestSuite() { TestCaseReference **QueryTestSuite() {
...@@ -52,7 +60,6 @@ TestCaseReference **QueryTestSuite() { ...@@ -52,7 +60,6 @@ TestCaseReference **QueryTestSuite() {
* \sa * \sa
* http://wiki.libsdl.org/moin.cgi/SDL_RWseek * http://wiki.libsdl.org/moin.cgi/SDL_RWseek
* http://wiki.libsdl.org/moin.cgi/SDL_RWread * http://wiki.libsdl.org/moin.cgi/SDL_RWread
*
*/ */
int _testGeneric( SDL_RWops *rw, int write ) int _testGeneric( SDL_RWops *rw, int write )
{ {
...@@ -99,6 +106,8 @@ int _testGeneric( SDL_RWops *rw, int write ) ...@@ -99,6 +106,8 @@ int _testGeneric( SDL_RWops *rw, int write )
* Tests rwops parameters * Tests rwops parameters
* *
* \sa http://wiki.libsdl.org/moin.cgi/SDL_RWFromFile * \sa http://wiki.libsdl.org/moin.cgi/SDL_RWFromFile
*
* TODO Add fuzzer support here, write and read a string
*/ */
void rwops_testParam (void) void rwops_testParam (void)
{ {
...@@ -167,13 +176,14 @@ void rwops_testConstMem (void) ...@@ -167,13 +176,14 @@ void rwops_testConstMem (void)
/** /**
* @brief Tests opening from memory. * @brief Tests reading from memory.
* *
* \sa * \sa
* http://wiki.libsdl.org/moin.cgi/SDL_RWFromFile * http://wiki.libsdl.org/moin.cgi/SDL_RWFromFile
* http://wiki.libsdl.org/moin.cgi/SDL_FreeRW * http://wiki.libsdl.org/moin.cgi/SDL_FreeRW
*/ */
void rwops_testFile (void) void
rwops_testFileRead(void)
{ {
SDL_RWops *rw; SDL_RWops *rw;
...@@ -184,6 +194,19 @@ void rwops_testFile (void) ...@@ -184,6 +194,19 @@ void rwops_testFile (void)
_testGeneric( rw, 0 ); _testGeneric( rw, 0 );
SDL_FreeRW( rw ); SDL_FreeRW( rw );
}
/**
* @brief Tests writing from memory.
*
* \sa
* http://wiki.libsdl.org/moin.cgi/SDL_RWFromFile
* http://wiki.libsdl.org/moin.cgi/SDL_FreeRW
*/
void
rwops_testFileWrite(void)
{
SDL_RWops *rw;
/* Write test. */ /* Write test. */
rw = SDL_RWFromFile(RWOPS_WRITE, "w+"); rw = SDL_RWFromFile(RWOPS_WRITE, "w+");
...@@ -196,13 +219,15 @@ void rwops_testFile (void) ...@@ -196,13 +219,15 @@ void rwops_testFile (void)
/** /**
* @brief Tests opening from stdio * @brief Tests reading from stdio
* *
* \sa * \sa
* http://wiki.libsdl.org/moin.cgi/SDL_RWFromFP * http://wiki.libsdl.org/moin.cgi/SDL_RWFromFP
* http://wiki.libsdl.org/moin.cgi/SDL_FreeRW * http://wiki.libsdl.org/moin.cgi/SDL_FreeRW
*
*/ */
void rwops_testFP (void) void
rwops_testFPRead(void)
{ {
FILE *fp; FILE *fp;
SDL_RWops *rw; SDL_RWops *rw;
...@@ -214,9 +239,18 @@ void rwops_testFP (void) ...@@ -214,9 +239,18 @@ void rwops_testFP (void)
rw = SDL_RWFromFP( fp, 1 ); rw = SDL_RWFromFP( fp, 1 );
AssertTrue(rw != NULL, "Opening memory with SDL_RWFromFP"); AssertTrue(rw != NULL, "Opening memory with SDL_RWFromFP");
// TODO bail out if NULL
_testGeneric( rw, 0 ); _testGeneric( rw, 0 );
SDL_FreeRW( rw ); SDL_FreeRW( rw );
fclose(fp);
}
void
rwops_testFPWrite(void)
{
FILE *fp;
SDL_RWops *rw;
/* Run write tests. */ /* Run write tests. */
fp = fopen(RWOPS_WRITE, "w+"); fp = fopen(RWOPS_WRITE, "w+");
...@@ -228,4 +262,5 @@ void rwops_testFP (void) ...@@ -228,4 +262,5 @@ void rwops_testFP (void)
_testGeneric( rw, 1 ); _testGeneric( rw, 1 );
SDL_FreeRW( rw ); SDL_FreeRW( rw );
fclose(fp);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment