[kdbus] Add support for name watching
[platform/upstream/glib.git] / tests / atomic-test.c
index 0f94788..3dd4b19 100644 (file)
@@ -11,9 +11,9 @@ main (int   argc,
       char *argv[])
 {
   gint i;
-  gint32 atomic = -5;
+  gint atomic = -5;
   gpointer atomic_pointer = NULL;
-  gpointer biggest_pointer = atomic_pointer - 1;
+  gpointer biggest_pointer = (gpointer)((gsize)atomic_pointer - 1);
 
   for (i = 0; i < 15; i++)
     g_atomic_int_inc (&atomic);
@@ -23,10 +23,10 @@ main (int   argc,
   g_assert (g_atomic_int_dec_and_test (&atomic));
   g_assert (atomic == 0);
 
-  g_assert (g_atomic_int_exchange_and_add (&atomic, 5) == 0);
+  g_assert (g_atomic_int_add (&atomic, 5) == 0);
   g_assert (atomic == 5);
 
-  g_assert (g_atomic_int_exchange_and_add (&atomic, -10) == 5);
+  g_assert (g_atomic_int_add (&atomic, -10) == 5);
   g_assert (atomic == -5);
 
   g_atomic_int_add (&atomic, 20);
@@ -43,6 +43,12 @@ main (int   argc,
   g_assert (!g_atomic_int_compare_and_exchange (&atomic, 42, 12));
   g_assert (atomic == 20);
   
+  g_assert (g_atomic_int_compare_and_exchange (&atomic, 20, G_MAXINT));
+  g_assert (atomic == G_MAXINT);
+
+  g_assert (g_atomic_int_compare_and_exchange (&atomic, G_MAXINT, G_MININT));
+  g_assert (atomic == G_MININT);
+
   g_assert (g_atomic_pointer_compare_and_exchange (&atomic_pointer, 
                                                   NULL, biggest_pointer));
   g_assert (atomic_pointer == biggest_pointer);