Merge remote branch 'gvdb/master'
[platform/upstream/glib.git] / gobject / tests / reference.c
1 #include <glib-object.h>
2
3 static void
4 test_clear (void)
5 {
6   GObject *o = NULL;
7   GObject *tmp;
8
9   g_clear_object (&o);
10   g_assert (o == NULL);
11
12   tmp = g_object_new (G_TYPE_OBJECT, NULL);
13   g_assert_cmpint (tmp->ref_count, ==, 1);
14   o = g_object_ref (tmp);
15   g_assert (o != NULL);
16
17   g_assert_cmpint (tmp->ref_count, ==, 2);
18   g_clear_object (&o);
19   g_assert_cmpint (tmp->ref_count, ==, 1);
20   g_assert (o == NULL);
21
22   g_object_unref (tmp);
23 }
24
25 int
26 main (int argc, char **argv)
27 {
28   g_test_init (&argc, &argv, NULL);
29
30   g_type_init ();
31
32   g_test_add_func ("/object/clear", test_clear);
33
34   return g_test_run ();
35 }