Mercurial > sdl-ios-xcode
changeset 3737:9689eaa6d2e3 gsoc2009_unit_tests
Made rwops tests a bit more complete.
author | Edgar Simo <bobbens@gmail.com> |
---|---|
date | Sun, 02 Aug 2009 09:37:14 +0000 |
parents | 78f544eded7b |
children | c875baafce36 |
files | test/automated/rwops/read test/automated/rwops/rwops.c |
diffstat | 2 files changed, 96 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/test/automated/rwops/read Mon Jul 20 18:42:55 2009 +0000 +++ b/test/automated/rwops/read Sun Aug 02 09:37:14 2009 +0000 @@ -1,1 +1,1 @@ -Hello World! +Hello World! \ No newline at end of file
--- a/test/automated/rwops/rwops.c Mon Jul 20 18:42:55 2009 +0000 +++ b/test/automated/rwops/rwops.c Sun Aug 02 09:37:14 2009 +0000 @@ -11,10 +11,46 @@ #include "SDL_at.h" +#define RWOPS_READ "rwops/read" +#define RWOPS_WRITE "rwops/write" + static const char hello_world[] = "Hello World!"; /** + * @brief Makes sure parameters work properly. + */ +static void rwops_testParam (void) +{ + SDL_RWops *rwops; + + /* Begin testcase. */ + SDL_ATbegin( "RWops Parameters" ); + + /* These should all fail. */ + rwops = SDL_RWFromFile(NULL, NULL); + if (SDL_ATassert( "SDL_RWFromFile(NULL, NULL) worked", rwops == NULL )) + return; + rwops = SDL_RWFromFile(NULL, "ab+"); + if (SDL_ATassert( "SDL_RWFromFile(NULL, \"ab+\") worked", rwops == NULL )) + return; + rwops = SDL_RWFromFile(NULL, "sldfkjsldkfj"); + if (SDL_ATassert( "SDL_RWFromFile(NULL, \"sldfkjsldkfj\") worked", rwops == NULL )) + return; + rwops = SDL_RWFromFile("something", ""); + if (SDL_ATassert( "SDL_RWFromFile(\"something\", \"\") worked", rwops == NULL )) + return; + rwops = SDL_RWFromFile("something", NULL); + if (SDL_ATassert( "SDL_RWFromFile(\"something\", NULL) worked", rwops == NULL )) + return; + + + /* End testcase. */ + SDL_ATend(); +} + + +/** * @brief Does a generic rwops test. * * RWops should have "Hello World!" in it already if write is disabled. @@ -27,33 +63,58 @@ char buf[sizeof(hello_world)]; int i; + /* Set to start. */ + i = SDL_RWseek( rw, 0, RW_SEEK_SET ); + if (SDL_ATvassert( i == 0, + "Seeking with SDL_RWseek (RW_SEEK_SET): got %d, expected %d", + i, 0 )) + return 1; + + /* Test write. */ + i = SDL_RWwrite( rw, hello_world, sizeof(hello_world)-1, 1 ); if (write) { - /* Test write. */ - i = SDL_RWwrite( rw, hello_world, sizeof(hello_world)-1, 1 ); - if (SDL_ATassert( "Writing with SDL_RWwrite", i == 1 )) + if (SDL_ATassert( "Writing with SDL_RWwrite (failed to write)", i == 1 )) + return 1; + } + else { + if (SDL_ATassert( "Writing with SDL_RWwrite (wrote when shouldn't have)", i <= 0 )) return 1; } /* Test seek. */ i = SDL_RWseek( rw, 6, RW_SEEK_SET ); - if (SDL_ATassert( "Seeking with SDL_RWseek", i == 6 )) - return 1; + if (SDL_ATvassert( i == 6, + "Seeking with SDL_RWseek (RW_SEEK_SET): got %d, expected %d", + i, 0 )) + return 1; /* Test seek. */ i = SDL_RWseek( rw, 0, RW_SEEK_SET ); - if (SDL_ATassert( "Seeking with SDL_RWseek", i == 0 )) + if (SDL_ATvassert( i == 0, + "Seeking with SDL_RWseek (RW_SEEK_SET): got %d, expected %d", + i, 0 )) return 1; /* Test read. */ i = SDL_RWread( rw, buf, 1, sizeof(hello_world)-1 ); - if (i != sizeof(hello_world)-1) - printf("%s\n", SDL_GetError()); if (SDL_ATassert( "Reading with SDL_RWread", i == sizeof(hello_world)-1 )) return 1; if (SDL_ATassert( "Memory read does not match memory written", memcmp( buf, hello_world, sizeof(hello_world)-1 ) == 0 )) return 1; + /* More seek tests. */ + i = SDL_RWseek( rw, -4, RW_SEEK_CUR ); + if (SDL_ATvassert( i == sizeof(hello_world)-5, + "Seeking with SDL_RWseek (RW_SEEK_CUR): got %d, expected %d", + i, sizeof(hello_world)-5 )) + return 1; + i = SDL_RWseek( rw, -1, RW_SEEK_END ); + if (SDL_ATvassert( i == sizeof(hello_world)-2, + "Seeking with SDL_RWseek (RW_SEEK_END): got %d, expected %d", + i, sizeof(hello_world)-2 )) + return 1; + return 0; } @@ -70,7 +131,7 @@ SDL_ATbegin( "SDL_RWFromMem" ); /* Open. */ - rw = SDL_RWFromMem( mem, sizeof(mem) ); + rw = SDL_RWFromMem( mem, sizeof(hello_world)-1 ); if (SDL_ATassert( "Opening memory with SDL_RWFromMem", rw != NULL )) return; @@ -98,7 +159,7 @@ SDL_ATbegin( "SDL_RWFromConstMem" ); /* Open. */ - rw = SDL_RWFromConstMem( const_mem, sizeof(const_mem) ); + rw = SDL_RWFromConstMem( const_mem, sizeof(const_mem)-1 ); if (SDL_ATassert( "Opening memory with SDL_RWFromConstMem", rw != NULL )) return; @@ -120,26 +181,24 @@ static void rwops_testFile (void) { SDL_RWops *rw; - int i; /* Begin testcase. */ SDL_ATbegin( "SDL_RWFromFile" ); - /* Open. */ - rw = SDL_RWFromFile( "rwops/read", "r" ); - if (SDL_ATassert( "Opening memory with SDL_RWFromFile", rw != NULL )) + /* Read test. */ + rw = SDL_RWFromFile( RWOPS_READ, "r" ); + if (SDL_ATassert( "Opening memory with SDL_RWFromFile '"RWOPS_READ"'", rw != NULL )) return; - - /* Test writing. */ - i = SDL_RWwrite( rw, hello_world, sizeof(hello_world), 1 ); - if (SDL_ATassert( "Writing with SDL_RWwrite", i == 0 )) - return; - - /* Run generic tests. */ if (rwops_testGeneric( rw, 0 )) return; + SDL_FreeRW( rw ); - /* Close. */ + /* Write test. */ + rw = SDL_RWFromFile( RWOPS_WRITE, "w+" ); + if (SDL_ATassert( "Opening memory with SDL_RWFromFile '"RWOPS_WRITE"'", rw != NULL )) + return; + if (rwops_testGeneric( rw, 1 )) + return; SDL_FreeRW( rw ); /* End testcase. */ @@ -159,22 +218,26 @@ /* Begin testcase. */ SDL_ATbegin( "SDL_RWFromFP" ); - /* Open. */ - fp = fopen( "rwops/write", "w+" ); - if (fp == NULL) { - SDL_ATprint("Failed to open file rwops/write"); - SDL_ATend(); + /* Run read tests. */ + fp = fopen( RWOPS_READ, "r" ); + if (SDL_ATassert( "Failed to open file '"RWOPS_READ"'", fp != NULL)) return; - } rw = SDL_RWFromFP( fp, 1 ); if (SDL_ATassert( "Opening memory with SDL_RWFromFP", rw != NULL )) return; + if (rwops_testGeneric( rw, 0 )) + return; + SDL_FreeRW( rw ); - /* Run generic tests. */ + /* Run write tests. */ + fp = fopen( RWOPS_WRITE, "w+" ); + if (SDL_ATassert( "Failed to open file '"RWOPS_WRITE"'", fp != NULL)) + return; + rw = SDL_RWFromFP( fp, 1 ); + if (SDL_ATassert( "Opening memory with SDL_RWFromFP", rw != NULL )) + return; if (rwops_testGeneric( rw, 1 )) return; - - /* Close. */ SDL_FreeRW( rw ); /* End testcase. */ @@ -193,6 +256,7 @@ SDL_ATinit( "SDL_RWops" ); + rwops_testParam(); rwops_testMem(); rwops_testConstMem(); rwops_testFile();