#include #include #include #include "test-conform-common.h" CoglUserDataKey private_key0; CoglUserDataKey private_key1; CoglUserDataKey private_key2; static int user_data0; static int user_data1; static int user_data2; static int destroy0_count = 0; static int destroy1_count = 0; static int destroy2_count = 0; static void destroy0_cb (void *user_data) { g_assert (user_data == &user_data0); destroy0_count++; } static void destroy1_cb (void *user_data) { g_assert (user_data == &user_data1); destroy1_count++; } static void destroy2_cb (void *user_data) { g_assert (user_data == &user_data2); destroy2_count++; } void test_object (TestUtilsGTestFixture *fixture, void *data) { CoglPath *path; /* Assuming that COGL_OBJECT_N_PRE_ALLOCATED_USER_DATA_ENTRIES == 2 * test associating 2 pointers to private data with an object */ cogl_path_new (); path = cogl_get_path (); cogl_object_set_user_data (COGL_OBJECT (path), &private_key0, &user_data0, destroy0_cb); cogl_object_set_user_data (COGL_OBJECT (path), &private_key1, &user_data1, destroy1_cb); cogl_object_set_user_data (COGL_OBJECT (path), &private_key2, &user_data2, destroy2_cb); cogl_object_set_user_data (COGL_OBJECT (path), &private_key1, NULL, destroy1_cb); cogl_object_set_user_data (COGL_OBJECT (path), &private_key1, &user_data1, destroy1_cb); cogl_object_unref (path); g_assert_cmpint (destroy0_count, ==, 1); g_assert_cmpint (destroy1_count, ==, 2); g_assert_cmpint (destroy2_count, ==, 1); if (cogl_test_verbose ()) g_print ("OK\n"); }