conform: Adds a test-cogl-object conformance test
This tests the new cogl_object_get/set_user_data API
This commit is contained in:
parent
2ce0cf3861
commit
457faaffb7
@ -30,6 +30,7 @@ test_conformance_SOURCES = \
|
|||||||
test-cogl-wrap-modes.c \
|
test-cogl-wrap-modes.c \
|
||||||
test-cogl-pixel-buffer.c \
|
test-cogl-pixel-buffer.c \
|
||||||
test-cogl-path.c \
|
test-cogl-path.c \
|
||||||
|
test-cogl-object.c \
|
||||||
test-path.c \
|
test-path.c \
|
||||||
test-pick.c \
|
test-pick.c \
|
||||||
test-clutter-rectangle.c \
|
test-clutter-rectangle.c \
|
||||||
|
86
tests/conform/test-cogl-object.c
Normal file
86
tests/conform/test-cogl-object.c
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
|
||||||
|
#include <clutter/clutter.h>
|
||||||
|
#include <cogl/cogl.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#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_cogl_object (TestConformSimpleFixture *fixture,
|
||||||
|
gconstpointer 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 (g_test_verbose ())
|
||||||
|
g_print ("OK\n");
|
||||||
|
}
|
||||||
|
|
@ -189,6 +189,7 @@ main (int argc, char **argv)
|
|||||||
|
|
||||||
TEST_CONFORM_SIMPLE ("/behaviours", test_behaviours);
|
TEST_CONFORM_SIMPLE ("/behaviours", test_behaviours);
|
||||||
|
|
||||||
|
TEST_CONFORM_SIMPLE ("/cogl", test_cogl_object);
|
||||||
TEST_CONFORM_SIMPLE ("/cogl", test_cogl_fixed);
|
TEST_CONFORM_SIMPLE ("/cogl", test_cogl_fixed);
|
||||||
TEST_CONFORM_SIMPLE ("/cogl", test_cogl_backface_culling);
|
TEST_CONFORM_SIMPLE ("/cogl", test_cogl_backface_culling);
|
||||||
TEST_CONFORM_SIMPLE ("/cogl", test_cogl_materials);
|
TEST_CONFORM_SIMPLE ("/cogl", test_cogl_materials);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user