1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/ossrv/glib/tsrc/BC/src/tg_test2.c Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,657 @@
1.4 +/* GObject - GLib Type, Object, Parameter and Signal Library
1.5 + * Copyright (C) 2001, 2003 Red Hat, Inc.
1.6 + *
1.7 + * This library is free software; you can redistribute it and/or
1.8 + * modify it under the terms of the GNU Lesser General Public
1.9 + * License as published by the Free Software Foundation; either
1.10 + * version 2 of the License, or (at your option) any later version.
1.11 + *
1.12 + * This library is distributed in the hope that it will be useful,
1.13 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
1.14 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.15 + * Lesser General Public License for more details.
1.16 + *
1.17 + * You should have received a copy of the GNU Lesser General
1.18 + * Public License along with this library; if not, write to the
1.19 + * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
1.20 + * Boston, MA 02111-1307, USA.
1.21 + */
1.22 +
1.23 +#undef G_LOG_DOMAIN
1.24 +//#define G_LOG_DOMAIN "TestIfaceProperties"
1.25 +
1.26 +#undef G_DISABLE_ASSERT
1.27 +#undef G_DISABLE_CHECKS
1.28 +#undef G_DISABLE_CAST_CHECKS
1.29 +
1.30 +
1.31 +#include <string.h>
1.32 +#include <glib-object.h>
1.33 +
1.34 +#include <gobject_global.h>
1.35 +
1.36 +#include "testcommon.h"
1.37 +
1.38 +#ifdef SYMBIAN
1.39 +#include "mrt2_glib2_test.h"
1.40 +#endif /*SYMBIAN*/
1.41 +
1.42 +
1.43 +#include <glib_global.h>
1.44 +static guint foo_signal_id = 0; //Amarjeet
1.45 +
1.46 +enum {
1.47 + MAMAN_BAR_CONSTRUCT_NAME = 1,
1.48 + MAMAN_BAR_PAPA_NUMBER,
1.49 +};
1.50 +
1.51 +
1.52 +/* This test tests interface properties, implementing interface
1.53 + * properties and #GParamSpecOverride.
1.54 + *
1.55 + * Four properties are tested:
1.56 + *
1.57 + * prop1: Defined in TestIface, Implemented in BaseObject with a GParamSpecOverride
1.58 + * prop2: Defined in TestIface, Implemented in BaseObject with a new property
1.59 + * prop3: Defined in TestIface, Implemented in BaseObject, Overridden in DerivedObject
1.60 + * prop4: Defined in BaseObject, Overridden in DerivedObject
1.61 + */
1.62 +
1.63 +static GType base_object_get_type ();
1.64 +static GType derived_object_get_type ();
1.65 +
1.66 +enum {
1.67 + BASE_PROP_0,
1.68 + BASE_PROP1,
1.69 + BASE_PROP2,
1.70 + BASE_PROP3,
1.71 + BASE_PROP4
1.72 +};
1.73 +
1.74 +enum {
1.75 + DERIVED_PROP_0,
1.76 + DERIVED_PROP3,
1.77 + DERIVED_PROP4
1.78 +};
1.79 +
1.80 +/*
1.81 + * BaseObject, a parent class for DerivedObject
1.82 + */
1.83 +#define BASE_TYPE_OBJECT (base_object_get_type ())
1.84 +#define BASE_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BASE_TYPE_OBJECT, BaseObject))
1.85 +typedef struct _BaseObject BaseObject;
1.86 +typedef struct _BaseObjectClass BaseObjectClass;
1.87 +
1.88 +struct _BaseObject
1.89 +{
1.90 + GObject parent_instance;
1.91 +
1.92 + gint val1;
1.93 + gint val2;
1.94 + gint val3;
1.95 + gint val4;
1.96 +};
1.97 +struct _BaseObjectClass
1.98 +{
1.99 + GObjectClass parent_class;
1.100 +};
1.101 +
1.102 +GObjectClass *base_parent_class;
1.103 +
1.104 +/*
1.105 + * DerivedObject, the child class of DerivedObject
1.106 + */
1.107 +#define DERIVED_TYPE_OBJECT (derived_object_get_type ())
1.108 +typedef struct _DerivedObject DerivedObject;
1.109 +typedef struct _DerivedObjectClass DerivedObjectClass;
1.110 +
1.111 +struct _DerivedObject
1.112 +{
1.113 + BaseObject parent_instance;
1.114 +};
1.115 +struct _DerivedObjectClass
1.116 +{
1.117 + BaseObjectClass parent_class;
1.118 +};
1.119 +
1.120 +/*
1.121 + * The interface
1.122 + */
1.123 +typedef struct _TestIfaceClass TestIfaceClass;
1.124 +
1.125 +struct _TestIfaceClass
1.126 +{
1.127 + GTypeInterface base_iface;
1.128 +};
1.129 +
1.130 +#define TEST_TYPE_IFACE (test_iface_get_type ())
1.131 +
1.132 +/* The paramspecs installed on our interface
1.133 + */
1.134 +static GParamSpec *iface_spec1, *iface_spec2, *iface_spec3;
1.135 +
1.136 +/* The paramspecs inherited by our derived object
1.137 + */
1.138 +static GParamSpec *inherited_spec1, *inherited_spec2, *inherited_spec3, *inherited_spec4;
1.139 +
1.140 +
1.141 +
1.142 +static void
1.143 +test_iface_default_init (TestIfaceClass *iface_vtable)
1.144 +{
1.145 + inherited_spec1 = iface_spec1 = g_param_spec_int ("prop1",
1.146 + "Prop1",
1.147 + "Property 1",
1.148 + G_MININT, /* min */
1.149 + 0xFFFF, /* max */
1.150 + 42, /* default */
1.151 + (G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
1.152 + g_object_interface_install_property (iface_vtable, iface_spec1);
1.153 +
1.154 + iface_spec2 = g_param_spec_int ("prop2",
1.155 + "Prop2",
1.156 + "Property 2",
1.157 + G_MININT, /* min */
1.158 + G_MAXINT, /* max */
1.159 + 0, /* default */
1.160 + G_PARAM_WRITABLE);
1.161 + g_object_interface_install_property (iface_vtable, iface_spec2);
1.162 +
1.163 + inherited_spec3 = iface_spec3 = g_param_spec_int ("prop3",
1.164 + "Prop3",
1.165 + "Property 3",
1.166 + G_MININT, /* min */
1.167 + G_MAXINT, /* max */
1.168 + 0, /* default */
1.169 + G_PARAM_READWRITE);
1.170 + g_object_interface_install_property (iface_vtable, iface_spec3);
1.171 +}
1.172 +
1.173 +static DEFINE_IFACE (TestIface, test_iface, NULL, test_iface_default_init)
1.174 +
1.175 +
1.176 +static GObject*
1.177 +base_object_constructor (GType type,
1.178 + guint n_construct_properties,
1.179 + GObjectConstructParam *construct_properties)
1.180 +{
1.181 + /* The constructor is the one place where a GParamSpecOverride is visible
1.182 + * to the outside world, so we do a bunch of checks here
1.183 + */
1.184 + GValue value1 = { 0, };
1.185 + GValue value2 = { 0, };
1.186 + GParamSpec *pspec;
1.187 +
1.188 + g_assert (n_construct_properties == 1);
1.189 +
1.190 + pspec = construct_properties->pspec;
1.191 +
1.192 + /* Check we got the param spec we expected
1.193 + */
1.194 + g_assert (G_IS_PARAM_SPEC_OVERRIDE (pspec));
1.195 + g_assert (pspec->param_id == BASE_PROP1);
1.196 + g_assert (strcmp (g_param_spec_get_name (pspec), "prop1") == 0);
1.197 + g_assert (g_param_spec_get_redirect_target (pspec) == iface_spec1);
1.198 +
1.199 + /* Test redirection of the nick and blurb to the redirect target
1.200 + */
1.201 + g_assert (strcmp (g_param_spec_get_nick (pspec), "Prop1") == 0);
1.202 + g_assert (strcmp (g_param_spec_get_blurb (pspec), "Property 1") == 0);
1.203 +
1.204 + /* Test forwarding of the various GParamSpec methods to the redirect target
1.205 + */
1.206 + g_value_init (&value1, G_TYPE_INT);
1.207 + g_value_init (&value2, G_TYPE_INT);
1.208 +
1.209 + g_param_value_set_default (pspec, &value1);
1.210 + g_assert (g_value_get_int (&value1) == 42);
1.211 +
1.212 + g_value_reset (&value1);
1.213 + g_value_set_int (&value1, 0x10000);
1.214 + g_assert (g_param_value_validate (pspec, &value1));
1.215 + g_assert (g_value_get_int (&value1) == 0xFFFF);
1.216 + g_assert (!g_param_value_validate (pspec, &value1));
1.217 +
1.218 + g_value_reset (&value1);
1.219 + g_value_set_int (&value1, 1);
1.220 + g_value_set_int (&value2, 2);
1.221 + g_assert (g_param_values_cmp (pspec, &value1, &value2) < 0);
1.222 + g_assert (g_param_values_cmp (pspec, &value2, &value1) > 0);
1.223 +
1.224 + g_value_unset (&value1);
1.225 + g_value_unset (&value2);
1.226 +
1.227 + return base_parent_class->constructor (type,
1.228 + n_construct_properties,
1.229 + construct_properties);
1.230 +}
1.231 +
1.232 +static void
1.233 +base_object_set_property (GObject *object,
1.234 + guint prop_id,
1.235 + const GValue *value,
1.236 + GParamSpec *pspec)
1.237 +{
1.238 + BaseObject *base_object = BASE_OBJECT (object);
1.239 +
1.240 + switch (prop_id)
1.241 + {
1.242 + case BASE_PROP1:
1.243 + g_assert (pspec == inherited_spec1);
1.244 + base_object->val1 = g_value_get_int (value);
1.245 + break;
1.246 + case BASE_PROP2:
1.247 + g_assert (pspec == inherited_spec2);
1.248 + base_object->val2 = g_value_get_int (value);
1.249 + break;
1.250 + case BASE_PROP3:
1.251 + g_assert_not_reached ();
1.252 + break;
1.253 + case BASE_PROP4:
1.254 + g_assert_not_reached ();
1.255 + break;
1.256 + default:
1.257 + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
1.258 + break;
1.259 + }
1.260 +}
1.261 +
1.262 +static void
1.263 +base_object_get_property (GObject *object,
1.264 + guint prop_id,
1.265 + GValue *value,
1.266 + GParamSpec *pspec)
1.267 +{
1.268 + BaseObject *base_object = BASE_OBJECT (object);
1.269 +
1.270 + switch (prop_id)
1.271 + {
1.272 + case BASE_PROP1:
1.273 + g_assert (pspec == inherited_spec1);
1.274 + g_value_set_int (value, base_object->val1);
1.275 + break;
1.276 + case BASE_PROP2:
1.277 + g_assert (pspec == inherited_spec2);
1.278 + g_value_set_int (value, base_object->val2);
1.279 + break;
1.280 + case BASE_PROP3:
1.281 + g_assert_not_reached ();
1.282 + break;
1.283 + case BASE_PROP4:
1.284 + g_assert_not_reached ();
1.285 + break;
1.286 + default:
1.287 + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
1.288 + break;
1.289 + }
1.290 +}
1.291 +
1.292 +static void
1.293 +base_object_notify (GObject *object,
1.294 + GParamSpec *pspec)
1.295 +{
1.296 + /* The property passed to notify is the redirect target, not the
1.297 + * GParamSpecOverride
1.298 + */
1.299 + g_assert (pspec == inherited_spec1 ||
1.300 + pspec == inherited_spec2 ||
1.301 + pspec == inherited_spec3 ||
1.302 + pspec == inherited_spec4);
1.303 +}
1.304 +
1.305 +static void
1.306 +base_object_class_init (BaseObjectClass *class)
1.307 +{
1.308 + GObjectClass *object_class = G_OBJECT_CLASS (class);
1.309 +
1.310 + base_parent_class= g_type_class_peek_parent (class);
1.311 +
1.312 + object_class->constructor = base_object_constructor;
1.313 + object_class->set_property = base_object_set_property;
1.314 + object_class->get_property = base_object_get_property;
1.315 + object_class->notify = base_object_notify;
1.316 +
1.317 + g_object_class_override_property (object_class, BASE_PROP1, "prop1");
1.318 +
1.319 + /* We override this one using a real property, not GParamSpecOverride
1.320 + * We change the flags from READONLY to READWRITE to show that we
1.321 + * can make the flags less restrictive
1.322 + */
1.323 + inherited_spec2 = g_param_spec_int ("prop2",
1.324 + "Prop2",
1.325 + "Property 2",
1.326 + G_MININT, /* min */
1.327 + G_MAXINT, /* max */
1.328 + 0, /* default */
1.329 + G_PARAM_READWRITE);
1.330 + g_object_class_install_property (object_class, BASE_PROP2, inherited_spec2);
1.331 +
1.332 + g_object_class_override_property (object_class, BASE_PROP3, "prop3");
1.333 +
1.334 + inherited_spec4 = g_param_spec_int ("prop4",
1.335 + "Prop4",
1.336 + "Property 4",
1.337 + G_MININT, /* min */
1.338 + G_MAXINT, /* max */
1.339 + 0, /* default */
1.340 + G_PARAM_READWRITE);
1.341 + g_object_class_install_property (object_class, BASE_PROP4, inherited_spec4);
1.342 +}
1.343 +
1.344 +static void
1.345 +base_object_init (BaseObject *base_object)
1.346 +{
1.347 + base_object->val1 = 42;
1.348 +}
1.349 +
1.350 +static DEFINE_TYPE_FULL (BaseObject, base_object,
1.351 + base_object_class_init, NULL, base_object_init,
1.352 + G_TYPE_OBJECT,
1.353 + INTERFACE (NULL, TEST_TYPE_IFACE))
1.354 +
1.355 +static void
1.356 +derived_object_set_property (GObject *object,
1.357 + guint prop_id,
1.358 + const GValue *value,
1.359 + GParamSpec *pspec)
1.360 +{
1.361 + BaseObject *base_object = BASE_OBJECT (object);
1.362 +
1.363 + switch (prop_id)
1.364 + {
1.365 + case DERIVED_PROP3:
1.366 + g_assert (pspec == inherited_spec3);
1.367 + base_object->val3 = g_value_get_int (value);
1.368 + break;
1.369 + case DERIVED_PROP4:
1.370 + g_assert (pspec == inherited_spec4);
1.371 + base_object->val4 = g_value_get_int (value);
1.372 + break;
1.373 + default:
1.374 + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
1.375 + break;
1.376 + }
1.377 +}
1.378 +
1.379 +static void
1.380 +derived_object_get_property (GObject *object,
1.381 + guint prop_id,
1.382 + GValue *value,
1.383 + GParamSpec *pspec)
1.384 +{
1.385 + BaseObject *base_object = BASE_OBJECT (object);
1.386 +
1.387 + switch (prop_id)
1.388 + {
1.389 + case DERIVED_PROP3:
1.390 + g_assert (pspec == inherited_spec3);
1.391 + g_value_set_int (value, base_object->val3);
1.392 + break;
1.393 + case DERIVED_PROP4:
1.394 + g_assert (pspec == inherited_spec4);
1.395 + g_value_set_int (value, base_object->val4);
1.396 + break;
1.397 + default:
1.398 + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
1.399 + break;
1.400 + }
1.401 +}
1.402 +
1.403 +static void
1.404 +derived_object_class_init (DerivedObjectClass *class)
1.405 +{
1.406 + GObjectClass *object_class = G_OBJECT_CLASS (class);
1.407 +
1.408 + object_class->set_property = derived_object_set_property;
1.409 + object_class->get_property = derived_object_get_property;
1.410 +
1.411 + /* Overriding a property that is itself overridding an interface property */
1.412 + g_object_class_override_property (object_class, DERIVED_PROP3, "prop3");
1.413 +
1.414 + /* Overriding a property not from an interface */
1.415 + g_object_class_override_property (object_class, DERIVED_PROP4, "prop4");
1.416 +}
1.417 +
1.418 +static DEFINE_TYPE (DerivedObject, derived_object,
1.419 + derived_object_class_init, NULL, NULL,
1.420 + BASE_TYPE_OBJECT)
1.421 +
1.422 +/* Helper function for testing ...list_properties()
1.423 + */
1.424 +static void
1.425 +assert_in_properties (GParamSpec *param_spec,
1.426 + GParamSpec **properties,
1.427 + gint n_properties)
1.428 +{
1.429 + gint i;
1.430 + gboolean found = FALSE;
1.431 +
1.432 + for (i = 0; i < n_properties; i++)
1.433 + {
1.434 + if (properties[i] == param_spec)
1.435 + found = TRUE;
1.436 + }
1.437 +
1.438 + g_assert (found);
1.439 +}
1.440 +/**** Dummy function which does nothing *******/
1.441 +gboolean MyFunc (gpointer cache_data,
1.442 + GTypeClass *g_class)
1.443 +{
1.444 + return FALSE;
1.445 +};
1.446 +
1.447 +void MyFunc1 (gpointer data,
1.448 + GClosure *closure)
1.449 +{
1.450 + return ;
1.451 +}
1.452 +
1.453 +
1.454 +
1.455 +int
1.456 +main (gint argc,
1.457 + gchar *argv[])
1.458 +{
1.459 + GObject *object, *object1;
1.460 + GObjectClass *object_class;
1.461 + GParamSpec **properties;
1.462 + gpointer p ="Data",p1 = "Data1",ret;
1.463 + gchar *str;
1.464 + GValue val;
1.465 + GParamSpec* paramSpec;
1.466 + GParamFlags flags;
1.467 + GDestroyNotify destroy;
1.468 + gpointer wkPtr= "Weak Pointer";
1.469 + GType t;
1.470 + GTypeQuery query;
1.471 + GTypeClassCacheFunc cache_func = MyFunc;
1.472 + GTypeModule module;
1.473 + GEnumClass *type_class;
1.474 + GEnumValue enum_ret;
1.475 + GCallback callback_func;
1.476 + GClosure *closure_ret;
1.477 + gpointer notify_data= "Notify";
1.478 + gpointer notify_data1;
1.479 + GClosureNotify notify_func;
1.480 + gpointer pre_marshal_data = "MarshalData";
1.481 + GClosureNotify pre_marshal_notify;
1.482 + gpointer post_marshal_data = "PostMarshal";
1.483 + GClosureNotify post_marshal_notify = MyFunc1;
1.484 + GFlagsClass *flags_class;
1.485 + GFlagsValue* flagValue;
1.486 + GTypeModule *module1;
1.487 + GSource source;
1.488 + gpointer marshal_data;
1.489 + gpointer invocation_hint;
1.490 + GClosure closure;
1.491 + GObject *bar;
1.492 + GValue val1 = {0,};
1.493 + gpointer user_data= "name";
1.494 + GValue args[2];
1.495 + GObject *object_set;
1.496 + const GEnumValue static_values;
1.497 + static const GFlagsValue const_static_values[] = {
1.498 + { G_IO_IN, "G_IO_IN", "in" },
1.499 + { G_IO_OUT, "G_IO_OUT", "out" },
1.500 + { G_IO_PRI, "G_IO_PRI", "pri" },
1.501 + { G_IO_ERR, "G_IO_ERR", "err" },
1.502 + { G_IO_HUP, "G_IO_HUP", "hup" },
1.503 + { G_IO_NVAL, "G_IO_NVAL", "nval" },
1.504 + { 0, NULL, NULL }
1.505 + };
1.506 +
1.507 + guint n_properties;
1.508 +
1.509 + gint val2, val3, val4;
1.510 + GQuark detail;
1.511 + GSignalEmissionHook hook_func;
1.512 + gpointer hook_data;
1.513 + GDestroyNotify data_destroy;
1.514 +
1.515 + GValue orig = { 0, };
1.516 + GValue xform = { 0, };
1.517 + GEnumValue values[] = { {0,"0","0"}, {1,"1","1"}};
1.518 +
1.519 + #ifdef SYMBIAN
1.520 + 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);
1.521 + #endif /*SYMBIAN*/
1.522 +
1.523 + g_log_set_always_fatal (g_log_set_always_fatal (G_LOG_FATAL_MASK) |
1.524 + G_LOG_LEVEL_WARNING |
1.525 + G_LOG_LEVEL_CRITICAL);
1.526 + g_type_init ();
1.527 +
1.528 + object = g_object_new (DERIVED_TYPE_OBJECT, NULL);
1.529 +
1.530 + /* Test setting and getting the properties
1.531 + */
1.532 +
1.533 +
1.534 + memset (&xform, 0, sizeof (GValue));
1.535 + g_value_init (&xform, G_TYPE_CHAR);
1.536 +
1.537 + g_object_set_data(object , "Key",p);
1.538 + ret = g_object_get_data(object , "Key");
1.539 + str = (gchar *)ret;
1.540 + g_assert (!strcmp(str , "Data"));
1.541 +
1.542 + g_object_set_data_full (object, "Key1", p1, destroy);
1.543 + ret = g_object_get_data(object , "Key1");
1.544 + str = (gchar *)ret;
1.545 + g_assert (!strcmp(str , "Data1"));
1.546 +
1.547 + g_object_set_qdata (object, 1, p1);
1.548 +
1.549 + g_object_set_qdata_full (object, 1, p1, destroy);
1.550 +
1.551 + ret = g_object_get_qdata (object, 1);
1.552 +
1.553 + str = (gchar *)ret;
1.554 +
1.555 + g_assert (!strcmp(str , "Data1"));
1.556 +
1.557 + ret = g_object_steal_data (object , "Key1");
1.558 +
1.559 + str = (gchar *)ret;
1.560 +
1.561 + g_assert (!strcmp(str , "Data1"));
1.562 +
1.563 + ret = g_object_steal_qdata (object , 1);
1.564 +
1.565 + str = (gchar *)ret;
1.566 +
1.567 + g_assert (!strcmp(str , "Data1"));
1.568 +
1.569 + g_object_run_dispose(object);
1.570 +
1.571 + g_object_add_weak_pointer (object, wkPtr);
1.572 +
1.573 + g_object_remove_weak_pointer(object, wkPtr);
1.574 +
1.575 + g_assert (g_type_qname (G_TYPE_INTERFACE) == 5);
1.576 +
1.577 + g_type_query (G_TYPE_OBJECT, &query);
1.578 +
1.579 + g_assert (query.type == 80);
1.580 +
1.581 + g_type_set_qdata (G_TYPE_OBJECT ,1 , wkPtr);
1.582 +
1.583 + ret = g_type_get_qdata (G_TYPE_OBJECT ,1);
1.584 +
1.585 + str = (gchar *)ret;
1.586 +
1.587 + g_assert (!strcmp(str , "Weak Pointer"));
1.588 +
1.589 + g_type_add_class_cache_func (wkPtr, cache_func);
1.590 +
1.591 + g_type_remove_class_cache_func (wkPtr, cache_func);
1.592 +
1.593 + g_assert (g_type_next_base (G_TYPE_OBJECT, G_TYPE_INT) == 0);
1.594 +
1.595 + type_class = g_type_class_ref (G_TYPE_ENUM);
1.596 +
1.597 + g_assert (g_enum_get_value_by_nick (G_ENUM_CLASS (type_class),"Nick") == NULL) ;
1.598 +
1.599 + g_assert ((g_enum_register_static ("Name", &enum_ret)) != 0);
1.600 +
1.601 + g_assert((g_cclosure_new_object((GCallback)MyFunc1, object)) != NULL);
1.602 +
1.603 + closure_ret = g_closure_new_object(sizeof(GClosure),object);
1.604 +
1.605 + g_assert((g_closure_new_object(sizeof(GClosure),object)) != NULL);
1.606 +
1.607 + g_closure_add_finalize_notifier (closure_ret, notify_data, MyFunc1);
1.608 +
1.609 + g_closure_remove_finalize_notifier (closure_ret, notify_data, MyFunc1);
1.610 +
1.611 + closure_ret->n_guards = 0; //Changed the structure to pass the below api.
1.612 +
1.613 + g_closure_add_marshal_guards (closure_ret, pre_marshal_data, MyFunc1, post_marshal_data, MyFunc1);
1.614 +
1.615 + g_assert(g_pointer_type_register_static ("G_TYPE_OBJECT") != 0);
1.616 +
1.617 + paramSpec = g_param_spec_boolean("String1", "Hello", "World", FALSE, flags);
1.618 +
1.619 + g_assert( !strcmp(paramSpec->name , "String1"));
1.620 +
1.621 + flags_class = g_type_class_ref(G_TYPE_FLAGS);
1.622 +
1.623 + flagValue = g_flags_get_value_by_name (flags_class, "Name");
1.624 +
1.625 + g_assert (flagValue == NULL);
1.626 +
1.627 + flagValue = g_flags_get_value_by_nick (flags_class, "Name");
1.628 +
1.629 + g_assert (flagValue == NULL);
1.630 +
1.631 + object1 = g_object_new (DERIVED_TYPE_OBJECT, NULL);
1.632 +
1.633 + t = g_flags_register_static ("GIOCondition", const_static_values);
1.634 +
1.635 + g_assert (t != 0);
1.636 +
1.637 + ret = g_object_connect (object1, NULL);
1.638 +
1.639 + g_assert (ret != NULL);
1.640 +
1.641 + g_object_disconnect(object1, NULL);
1.642 +
1.643 + paramSpec = g_param_spec_uchar ("papa-number",
1.644 + "Papa",
1.645 + "Set/Get papa's number",
1.646 + 0 /* minimum value */,
1.647 + 10 /* maximum value */,
1.648 + 2 /* default value */,
1.649 + G_PARAM_READWRITE);
1.650 +
1.651 + object_set = G_OBJECT (NULL);
1.652 +
1.653 + g_value_init (&val1, paramSpec->value_type);
1.654 +
1.655 + #if SYMBIAN
1.656 + testResultXml("g_test2");
1.657 + #endif /* EMULATOR */
1.658 +
1.659 + return 0;
1.660 +}