Mercurial > sdl-ios-xcode
view test/automated/rwops/rwops.c @ 4425:a3e71b957215
Fixed bug #961
Kalle Olavi Niemitalo 2010-02-28 09:15:50 PST
It seems the SDLK_LMETA and SDLK_RMETA constants have been removed from SDL
1.3. I grepped for them in the SDL source tree and these were the only hits:
./include/SDL_compat.h:230:#define SDLK_LSUPER SDLK_LMETA
./include/SDL_compat.h:231:#define SDLK_RSUPER SDLK_RMETA
./src/video/bwindow/SDL_BWin.h:194: keymap[0x66] = SDLK_LMETA;
./src/video/bwindow/SDL_BWin.h:195: keymap[0x67] = SDLK_RMETA;
I don't know how compatible SDL 1.3 is supposed to be with applications
designed for SDL 1.2. However, as you can see, SDL itself is still trying to
use the removed constants, and that is clearly a bug.
Because SDL_compat.h defines KMOD_LMETA as KMOD_LGUI, I suppose it should also
define SDLK_LMETA as SDLK_LGUI, and SDLK_RMETA likewise.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 09 Mar 2010 06:07:48 +0000 |
parents | 78db4f7ae2f3 |
children | 947201caa46e |
line wrap: on
line source
/** * Automated SDL_RWops test. * * Written by Edgar Simo "bobbens" * * Released under Public Domain. */ #include "SDL.h" #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. * * @param write Test writing also. * @return 1 if an assert is failed. */ static int rwops_testGeneric( SDL_RWops *rw, int write ) { 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) { 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_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_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 (SDL_ATassert( "Reading with SDL_RWread", i == sizeof(hello_world)-1 )) return 1; if (SDL_ATassert( "Memory read does not match memory written", SDL_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; } /** * @brief Tests opening from memory. */ static void rwops_testMem (void) { char mem[sizeof(hello_world)]; SDL_RWops *rw; /* Begin testcase. */ SDL_ATbegin( "SDL_RWFromMem" ); /* Open. */ rw = SDL_RWFromMem( mem, sizeof(hello_world)-1 ); if (SDL_ATassert( "Opening memory with SDL_RWFromMem", rw != NULL )) return; /* Run generic tests. */ if (rwops_testGeneric( rw, 1 )) return; /* Close. */ SDL_FreeRW( rw ); /* End testcase. */ SDL_ATend(); } static const char const_mem[] = "Hello World!"; /** * @brief Tests opening from memory. */ static void rwops_testConstMem (void) { SDL_RWops *rw; /* Begin testcase. */ SDL_ATbegin( "SDL_RWFromConstMem" ); /* Open. */ rw = SDL_RWFromConstMem( const_mem, sizeof(const_mem)-1 ); if (SDL_ATassert( "Opening memory with SDL_RWFromConstMem", rw != NULL )) return; /* Run generic tests. */ if (rwops_testGeneric( rw, 0 )) return; /* Close. */ SDL_FreeRW( rw ); /* End testcase. */ SDL_ATend(); } /** * @brief Tests opening from memory. */ static void rwops_testFile (void) { SDL_RWops *rw; /* Begin testcase. */ SDL_ATbegin( "SDL_RWFromFile" ); /* Read test. */ rw = SDL_RWFromFile( RWOPS_READ, "r" ); if (SDL_ATassert( "Opening memory with SDL_RWFromFile '"RWOPS_READ"'", rw != NULL )) return; if (rwops_testGeneric( rw, 0 )) return; SDL_FreeRW( rw ); /* 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. */ SDL_ATend(); } /** * @brief Tests opening from memory. */ static void rwops_testFP (void) { #ifdef HAVE_STDIO_H FILE *fp; SDL_RWops *rw; /* Begin testcase. */ SDL_ATbegin( "SDL_RWFromFP" ); /* 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 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; SDL_FreeRW( rw ); /* End testcase. */ SDL_ATend(); #endif /* HAVE_STDIO_H */ } /** * @brief Entry point. */ #ifdef TEST_STANDALONE int main( int argc, const char *argv[] ) { (void) argc; (void) argv; #else /* TEST_STANDALONE */ int test_rwops (void) { #endif /* TEST_STANDALONE */ SDL_ATinit( "SDL_RWops" ); rwops_testParam(); rwops_testMem(); rwops_testConstMem(); rwops_testFile(); rwops_testFP(); return SDL_ATfinish(); }