Update contrib.
1 /* Portion Copyright © 2008-09 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. */
4 #include <glib-object.h>
8 #include "mrt2_glib2_test.h"
12 #define G_TYPE_TEST (g_test_get_type ())
13 #define G_TEST(test) (G_TYPE_CHECK_INSTANCE_CAST ((test), G_TYPE_TEST, GTest))
14 #define G_IS_TEST(test) (G_TYPE_CHECK_INSTANCE_TYPE ((test), G_TYPE_TEST))
15 #define G_TEST_CLASS(tclass) (G_TYPE_CHECK_CLASS_CAST ((tclass), G_TYPE_TEST, GTestClass))
16 #define G_IS_TEST_CLASS(tclass) (G_TYPE_CHECK_CLASS_TYPE ((tclass), G_TYPE_TEST))
17 #define G_TEST_GET_CLASS(test) (G_TYPE_INSTANCE_GET_CLASS ((test), G_TYPE_TEST, GTestClass))
24 typedef struct _GTest GTest;
25 typedef struct _GTestClass GTestClass;
36 GObjectClass parent_class;
39 static GType g_test_get_type (void);
41 static void g_test_class_init (GTestClass * klass);
42 static void g_test_init (GTest * test);
43 static void g_test_dispose (GObject * object);
44 static void g_test_get_property (GObject *object,
48 static void g_test_set_property (GObject *object,
53 static GObjectClass *parent_class = NULL;
56 g_test_get_type (void)
58 static GType test_type = 0;
61 static const GTypeInfo test_info = {
65 (GClassInitFunc) g_test_class_init,
70 (GInstanceInitFunc) g_test_init,
74 test_type = g_type_register_static (G_TYPE_OBJECT, "GTest",
78 g_print("properties2.c : g_type_register_static is failed @ line : %d",__LINE__);
79 g_assert(FALSE && "properties");
86 g_test_class_init (GTestClass * klass)
88 GObjectClass *gobject_class;
89 GParamSpec *gparam_spec;
91 gobject_class = (GObjectClass *) klass;
93 parent_class = g_type_class_ref (G_TYPE_OBJECT);
96 g_print("properties2.c : g_tupe_class_ref failed @ line : %d",__LINE__);
97 g_assert(FALSE && "properties");
102 gobject_class->dispose = g_test_dispose;
103 gobject_class->get_property = g_test_get_property;
104 gobject_class->set_property = g_test_set_property;
106 g_object_class_install_property (gobject_class,
108 g_param_spec_int ("dummy",
117 g_test_init (GTest * test)
119 //g_print ("init %p\n", test);
123 g_test_dispose (GObject * object)
127 test = G_TEST (object);
129 g_print ("dispose %p!\n", object);
131 G_OBJECT_CLASS (parent_class)->dispose (object);
135 g_test_get_property (GObject *object,
142 test = G_TEST (object);
147 g_value_set_int (value, test->dummy);
150 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
156 g_test_set_property (GObject *object,
163 test = G_TEST (object);
168 test->dummy = g_value_get_int (value);
171 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
176 static gint count = 0;
179 dummy_notify (GObject *object,
183 //if (count % 10000 == 0)
188 g_test_do_property (GTest * test)
192 g_object_get (test, "dummy", &dummy, NULL);
193 g_object_set (test, "dummy", dummy + 1, NULL);
197 main (int argc, char **argv)
205 g_log_set_handler (NULL, G_LOG_FLAG_FATAL| G_LOG_FLAG_RECURSION | G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING | G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_INFO | G_LOG_LEVEL_DEBUG, &mrtLogHandler, NULL);
206 g_set_print_handler(mrtPrintHandler);
210 g_thread_init (NULL);
211 //g_print ("START: %s\n", argv[0]);
212 g_log_set_always_fatal (G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL | g_log_set_always_fatal (G_LOG_FATAL_MASK));
215 test = g_object_new (G_TYPE_TEST, NULL);
218 g_print("properties2.c : g_object_new is failed @ line : %d",__LINE__);
219 g_assert(FALSE && "properties");
221 handle_id = g_signal_connect (test, "notify::dummy", G_CALLBACK (dummy_notify), NULL);
223 g_print("properties2.c : g_signal_connect is failed @ line : %d",__LINE__);
225 g_assert (count == test->dummy);
227 for (i=0; i<1000; i++) {
228 g_test_do_property (test);
231 g_assert (count == test->dummy);
233 testResultXml("properties2");
234 #endif /* EMULATOR */