comparison 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
comparison
equal deleted inserted replaced
3179:9b34679fda8b 3180:77d6336711fc
1 #include "SDL.h"
2
3 int
4 main(int argc, char** argv)
5 {
6 int rv = 10;
7 volatile int atomic;
8
9 SDL_atomic_int_set(&atomic, 10);
10 if(SDL_atomic_int_get(&atomic) != 10)
11 printf("Error: ");
12 printf("SDL_atomic_int_set(atomic, 10): atomic-> %d\n",
13 SDL_atomic_int_get(&atomic));
14
15 SDL_atomic_int_add(&atomic, 10);
16 if(SDL_atomic_int_get(&atomic) != 20)
17 printf("Error: ");
18 printf("SDL_atomic_int_add(atomic, 10): atomic-> %d\n",
19 SDL_atomic_int_get(&atomic));
20
21 rv = SDL_atomic_int_cmp_xchg(&atomic, 20, 30);
22 if(rv != SDL_TRUE || SDL_atomic_int_get(&atomic) != 30)
23 printf("Error: ");
24 printf("SDL_atomic_int_cmp_xchg(atomic, 20, 30): rv-> %d, atomic-> %d\n",
25 rv, SDL_atomic_int_get(&atomic));
26
27 rv = SDL_atomic_int_cmp_xchg(&atomic, 20, 30);
28 if(rv != SDL_FALSE || SDL_atomic_int_get(&atomic) != 30)
29 printf("Error: ");
30 printf("SDL_atomic_int_cmp_xchg(atomic, 20, 40): rv-> %d, atomic-> %d\n",
31 rv, SDL_atomic_int_get(&atomic));
32
33 rv = SDL_atomic_int_xchg_add(&atomic, 10);
34 if(rv != 30 || SDL_atomic_int_get(&atomic) != 40)
35 printf("Error: ");
36 printf("SDL_atomic_int_xchg_add(atomic, 10): rv-> %d, atomic-> %d\n",
37 rv, SDL_atomic_int_get(&atomic));
38
39 SDL_atomic_int_inc(&atomic);
40 if(SDL_atomic_int_get(&atomic) != 41)
41 printf("Error: ");
42 printf("SDL_atomic_int_inc(atomic): atomic-> %d\n",
43 SDL_atomic_int_get(&atomic));
44
45 rv = SDL_atomic_int_dec_test(&atomic);
46 if(rv != SDL_FALSE || SDL_atomic_int_get(&atomic) != 40)
47 printf("Error: ");
48 printf("SDL_atomic_int_dec_test(atomic): rv-> %d, atomic-> %d\n",
49 rv, SDL_atomic_int_get(&atomic));
50
51 SDL_atomic_int_set(&atomic, 1);
52 if(SDL_atomic_int_get(&atomic) != 1)
53 printf("Error: ");
54 printf("SDL_atomic_int_set(atomic, 1): atomic-> %d\n",
55 SDL_atomic_int_get(&atomic));
56
57 rv = SDL_atomic_int_dec_test(&atomic);
58 if(rv != SDL_TRUE || SDL_atomic_int_get(&atomic) != 0)
59 printf("Error: ");
60 printf("SDL_atomic_int_dec_test(atomic): rv-> %d, atomic-> %d\n",
61 rv, SDL_atomic_int_get(&atomic));
62
63 return 0;
64 }