Mercurial > sdl-ios-xcode
comparison test/testatomic.c @ 3201:c297230efc75
Disabling 64 bit atomics operations until I figure out why they do not link.
author | Bob Pendleton <bob@pendleton.com> |
---|---|
date | Wed, 24 Jun 2009 22:24:23 +0000 |
parents | 3e1bf2b8bd81 |
children | 3aa519a5c676 |
comparison
equal
deleted
inserted
replaced
3200:ef2c029a3a9d | 3201:c297230efc75 |
---|---|
1 #include "SDL.h" | 1 #include "SDL.h" |
2 | |
3 /* | |
4 Absolutely basic test just to see if we get the expected value after | |
5 calling each function. | |
6 */ | |
2 | 7 |
3 int | 8 int |
4 main(int argc, char **argv) | 9 main(int argc, char **argv) |
5 { | 10 { |
6 /* int rv = 10; */ | |
7 /* volatile int atomic; */ | |
8 | 11 |
9 /* SDL_atomic_int_set(&atomic, 10); */ | 12 Uint32 val32 = 0; |
10 /* if (SDL_atomic_int_get(&atomic) != 10) */ | 13 Uint32 ret32 = 0; |
11 /* printf("Error: "); */ | |
12 /* printf("SDL_atomic_int_set(atomic, 10): atomic-> %d\n", */ | |
13 /* SDL_atomic_int_get(&atomic)); */ | |
14 | 14 |
15 /* SDL_atomic_int_add(&atomic, 10); */ | 15 Uint64 val64 = 0; |
16 /* if (SDL_atomic_int_get(&atomic) != 20) */ | 16 Uint64 ret64 = 0; |
17 /* printf("Error: "); */ | |
18 /* printf("SDL_atomic_int_add(atomic, 10): atomic-> %d\n", */ | |
19 /* SDL_atomic_int_get(&atomic)); */ | |
20 | 17 |
21 /* rv = SDL_atomic_int_cmp_xchg(&atomic, 20, 30); */ | 18 SDL_bool tfval = SDL_FALSE; |
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 | 19 |
27 /* rv = SDL_atomic_int_cmp_xchg(&atomic, 20, 30); */ | 20 ret32 = SDL_AtomicExchange32(&val32, 10); |
28 /* if (rv != SDL_FALSE || SDL_atomic_int_get(&atomic) != 30) */ | 21 tfval = SDL_AtomicCompareThenSet32(&val32, 10, 20); |
29 /* printf("Error: "); */ | 22 tfval = SDL_AtomicTestThenSet32(&val32); |
30 /* printf("SDL_atomic_int_cmp_xchg(atomic, 20, 40): rv-> %d, atomic-> %d\n", */ | 23 SDL_AtomicClear32(&val32); |
31 /* rv, SDL_atomic_int_get(&atomic)); */ | 24 ret32 = SDL_AtomicFetchThenIncrement32(&val32); |
25 ret32 = SDL_AtomicFetchThenDecrement32(&val32); | |
26 ret32 = SDL_AtomicFetchThenAdd32(&val32, 10); | |
27 ret32 = SDL_AtomicFetchThenSubtract32(&val32, 10); | |
28 ret32 = SDL_AtomicIncrementThenFetch32(&val32); | |
29 ret32 = SDL_AtomicDecrementThenFetch32(&val32); | |
30 ret32 = SDL_AtomicAddThenFetch32(&val32, 10); | |
31 ret32 = SDL_AtomicSubtractThenFetch32(&val32, 10); | |
32 | 32 |
33 /* rv = SDL_atomic_int_xchg_add(&atomic, 10); */ | 33 /* #ifdef SDL_HAS_64BIT_TYPE */ |
34 /* if (rv != 30 || SDL_atomic_int_get(&atomic) != 40) */ | 34 #if 0 |
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 | 35 |
39 /* SDL_atomic_int_inc(&atomic); */ | 36 ret64 = SDL_AtomicExchange64(&val64, 10); |
40 /* if (SDL_atomic_int_get(&atomic) != 41) */ | 37 tfval = SDL_AtomicCompareThenSet64(&val64, 10, 20); |
41 /* printf("Error: "); */ | 38 tfval = SDL_AtomicTestThenSet64(&val64); |
42 /* printf("SDL_atomic_int_inc(atomic): atomic-> %d\n", */ | 39 SDL_AtomicClear64(&val64); |
43 /* SDL_atomic_int_get(&atomic)); */ | 40 ret64 = SDL_AtomicFetchThenIncrement64(&val64); |
41 ret64 = SDL_AtomicFetchThenDecrement64(&val64); | |
42 ret64 = SDL_AtomicFetchThenAdd64(&val64, 10); | |
43 ret64 = SDL_AtomicFetchThenSubtract64(&val64, 10); | |
44 ret64 = SDL_AtomicIncrementThenFetch64(&val64); | |
45 ret64 = SDL_AtomicDecrementThenFetch64(&val64); | |
46 ret64 = SDL_AtomicAddThenFetch64(&val64, 10); | |
47 ret64 = SDL_AtomicSubtractThenFetch64(&val64, 10); | |
48 #endif | |
44 | 49 |
45 /* rv = SDL_atomic_int_dec_test(&atomic); */ | 50 return 0; |
46 /* if (rv != SDL_FALSE || SDL_atomic_int_get(&atomic) != 40) */ | 51 } |
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 } |