Mercurial > sdl-ios-xcode
diff test/testatomic.c @ 3180:77d6336711fc
First commit for SDL atomic operations.
On my linux box it compiles and installs correctly and testatomic runs without errors.
author | Bob Pendleton <bob@pendleton.com> |
---|---|
date | Tue, 09 Jun 2009 17:33:44 +0000 |
parents | |
children | 51750b7a966f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/testatomic.c Tue Jun 09 17:33:44 2009 +0000 @@ -0,0 +1,64 @@ +#include "SDL.h" + +int +main(int argc, char** argv) +{ + int rv = 10; + volatile int atomic; + + SDL_atomic_int_set(&atomic, 10); + if(SDL_atomic_int_get(&atomic) != 10) + printf("Error: "); + printf("SDL_atomic_int_set(atomic, 10): atomic-> %d\n", + SDL_atomic_int_get(&atomic)); + + SDL_atomic_int_add(&atomic, 10); + if(SDL_atomic_int_get(&atomic) != 20) + printf("Error: "); + printf("SDL_atomic_int_add(atomic, 10): atomic-> %d\n", + SDL_atomic_int_get(&atomic)); + + rv = SDL_atomic_int_cmp_xchg(&atomic, 20, 30); + if(rv != SDL_TRUE || SDL_atomic_int_get(&atomic) != 30) + printf("Error: "); + printf("SDL_atomic_int_cmp_xchg(atomic, 20, 30): rv-> %d, atomic-> %d\n", + rv, SDL_atomic_int_get(&atomic)); + + rv = SDL_atomic_int_cmp_xchg(&atomic, 20, 30); + if(rv != SDL_FALSE || SDL_atomic_int_get(&atomic) != 30) + printf("Error: "); + printf("SDL_atomic_int_cmp_xchg(atomic, 20, 40): rv-> %d, atomic-> %d\n", + rv, SDL_atomic_int_get(&atomic)); + + rv = SDL_atomic_int_xchg_add(&atomic, 10); + if(rv != 30 || SDL_atomic_int_get(&atomic) != 40) + printf("Error: "); + printf("SDL_atomic_int_xchg_add(atomic, 10): rv-> %d, atomic-> %d\n", + rv, SDL_atomic_int_get(&atomic)); + + SDL_atomic_int_inc(&atomic); + if(SDL_atomic_int_get(&atomic) != 41) + printf("Error: "); + printf("SDL_atomic_int_inc(atomic): atomic-> %d\n", + SDL_atomic_int_get(&atomic)); + + rv = SDL_atomic_int_dec_test(&atomic); + if(rv != SDL_FALSE || SDL_atomic_int_get(&atomic) != 40) + printf("Error: "); + printf("SDL_atomic_int_dec_test(atomic): rv-> %d, atomic-> %d\n", + rv, SDL_atomic_int_get(&atomic)); + + SDL_atomic_int_set(&atomic, 1); + if(SDL_atomic_int_get(&atomic) != 1) + printf("Error: "); + printf("SDL_atomic_int_set(atomic, 1): atomic-> %d\n", + SDL_atomic_int_get(&atomic)); + + rv = SDL_atomic_int_dec_test(&atomic); + if(rv != SDL_TRUE || SDL_atomic_int_get(&atomic) != 0) + printf("Error: "); + printf("SDL_atomic_int_dec_test(atomic): rv-> %d, atomic-> %d\n", + rv, SDL_atomic_int_get(&atomic)); + + return 0; +}