test/testatomic.c
author Sam Lantinga <slouken@libsdl.org>
Wed, 10 Jun 2009 13:34:20 +0000
changeset 3186 51750b7a966f
parent 3180 77d6336711fc
child 3199 3e1bf2b8bd81
permissions -rw-r--r--
indent
     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 }