Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Fixes based on CR.
Browse files Browse the repository at this point in the history
Some tests in rwops suite broken up to smaller tests.
  • Loading branch information
mkauppila committed Aug 15, 2011
1 parent 7a7d668 commit 221e392
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 28 deletions.
56 changes: 36 additions & 20 deletions test/test-automation/src/libSDLtest/fuzzer/fuzzer.c
Expand Up @@ -57,8 +57,6 @@ GenerateExecKey(char *runSeed, char *suiteName,
return -1;
}


// Change to itoa
char iterationString[16];
memset(iterationString, 0, sizeof(iterationString));
SDL_snprintf(iterationString, sizeof(iterationString) - 1, "%d", iterationNumber);
Expand All @@ -75,7 +73,7 @@ GenerateExecKey(char *runSeed, char *suiteName,

char *buffer = SDL_malloc(entireString);
if(!buffer) {
return -1;
return 0;
}

SDL_snprintf(buffer, entireString, "%s/%s/%s/%d", runSeed, suiteName,
Expand All @@ -89,9 +87,8 @@ GenerateExecKey(char *runSeed, char *suiteName,
SDL_free(buffer);

Uint64 *keys = (Uint64 *)md5Context.digest;
Uint64 key = keys[0];

return key;
return keys[0];
}

void
Expand Down Expand Up @@ -147,29 +144,25 @@ RandomPositiveInteger()
Uint64
RandomUint64()
{
Uint8 string[16];
Uint64 value;

int counter = 0;
for( ; counter < 16; ++counter) {
string[counter] = (Uint8) RandomIntegerInRange(0, 255);
}
Uint32 *vp = (Uint32*)&value;
vp[0] = RandomSint32();
vp[1] = RandomSint32();

Uint64 *value = (Uint64 *)string;
return value[0];
return value;
}

Sint64
RandomSint64()
{
Uint8 string[16];
Uint64 value;

int counter = 0;
for( ; counter < 16; ++counter) {
string[counter] = (Uint8) RandomIntegerInRange(0, 255);
}
Uint32 *vp = (Uint32*)&value;
vp[0] = RandomSint32();
vp[1] = RandomSint32();

Sint64 *value = (Sint64 *)string;
return value[0];
return value;
}


Expand Down Expand Up @@ -566,10 +559,33 @@ RandomSint64BoundaryValue(Sint64 boundary1, Sint64 boundary2, SDL_bool validDoma
return retVal;
}

float RandomFloat() {
float
RandomUnitFloat()
{
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 *
RandomAsciiString()
{
Expand Down
20 changes: 20 additions & 0 deletions test/test-automation/src/libSDLtest/fuzzer/fuzzer.h
Expand Up @@ -27,6 +27,11 @@
#include "utl_md5.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
Expand Down Expand Up @@ -103,8 +108,23 @@ Sint64 RandomSint64();
/*!
* 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();

/*!
* Returns random double
*/
double RandomDouble();

/*!
* Returns a random boundary value for Uint8 within the given boundaries.
* Boundaries are inclusive, see the usage examples below. If validDomain
Expand Down
51 changes: 43 additions & 8 deletions test/test-automation/tests/testrwops/testrwops.c
Expand Up @@ -13,6 +13,7 @@

#include "../../include/SDL_test.h"

// TODO create these at SetUp() and such TearDown()
const char* RWOPS_READ = "tests/testrwops/read";
const char* RWOPS_WRITE = "tests/testrwops/write";

Expand All @@ -30,15 +31,22 @@ static const TestCaseReference test3 =
(TestCaseReference){ "rwops_testConstMem", "Tests opening from (const) memory", TEST_ENABLED, 0, 0 };

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 =
(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 */
extern const TestCaseReference *testSuite[] = {
&test1, &test2, &test3, &test4, &test5, NULL
&test1, &test2, &test3, &test4, &test5, &test6, &test7, NULL
};

TestCaseReference **QueryTestSuite() {
Expand All @@ -52,7 +60,6 @@ TestCaseReference **QueryTestSuite() {
* \sa
* http://wiki.libsdl.org/moin.cgi/SDL_RWseek
* http://wiki.libsdl.org/moin.cgi/SDL_RWread
*
*/
int _testGeneric( SDL_RWops *rw, int write )
{
Expand Down Expand Up @@ -99,6 +106,8 @@ int _testGeneric( SDL_RWops *rw, int write )
* Tests rwops parameters
*
* \sa http://wiki.libsdl.org/moin.cgi/SDL_RWFromFile
*
* TODO Add fuzzer support here, write and read a string
*/
void rwops_testParam (void)
{
Expand Down Expand Up @@ -167,13 +176,14 @@ void rwops_testConstMem (void)


/**
* @brief Tests opening from memory.
* @brief Tests reading from memory.
*
* \sa
* http://wiki.libsdl.org/moin.cgi/SDL_RWFromFile
* http://wiki.libsdl.org/moin.cgi/SDL_FreeRW
*/
void rwops_testFile (void)
void
rwops_testFileRead(void)
{
SDL_RWops *rw;

Expand All @@ -184,6 +194,19 @@ void rwops_testFile (void)
_testGeneric( rw, 0 );

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. */
rw = SDL_RWFromFile(RWOPS_WRITE, "w+");
Expand All @@ -196,13 +219,15 @@ void rwops_testFile (void)


/**
* @brief Tests opening from stdio
* @brief Tests reading from stdio
*
* \sa
* http://wiki.libsdl.org/moin.cgi/SDL_RWFromFP
* http://wiki.libsdl.org/moin.cgi/SDL_FreeRW
*
*/
void rwops_testFP (void)
void
rwops_testFPRead(void)
{
FILE *fp;
SDL_RWops *rw;
Expand All @@ -214,9 +239,18 @@ void rwops_testFP (void)
rw = SDL_RWFromFP( fp, 1 );
AssertTrue(rw != NULL, "Opening memory with SDL_RWFromFP");

// TODO bail out if NULL
_testGeneric( rw, 0 );

SDL_FreeRW( rw );
fclose(fp);
}

void
rwops_testFPWrite(void)
{
FILE *fp;
SDL_RWops *rw;

/* Run write tests. */
fp = fopen(RWOPS_WRITE, "w+");
Expand All @@ -228,4 +262,5 @@ void rwops_testFP (void)
_testGeneric( rw, 1 );

SDL_FreeRW( rw );
fclose(fp);
}

0 comments on commit 221e392

Please sign in to comment.