os/ossrv/glib/tsrc/BC/src/closure-marshal.c
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
sl@0
     1
/* GObject - GLib Type, Object, Parameter and Signal Library
sl@0
     2
 * Copyright (C) 2001, 2003 Red Hat, Inc.
sl@0
     3
 *
sl@0
     4
 * This library is free software; you can redistribute it and/or
sl@0
     5
 * modify it under the terms of the GNU Lesser General Public
sl@0
     6
 * License as published by the Free Software Foundation; either
sl@0
     7
 * version 2 of the License, or (at your option) any later version.
sl@0
     8
 *
sl@0
     9
 * This library is distributed in the hope that it will be useful,
sl@0
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
sl@0
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
sl@0
    12
 * Lesser General Public License for more details.
sl@0
    13
 *
sl@0
    14
 * You should have received a copy of the GNU Lesser General
sl@0
    15
 * Public License along with this library; if not, write to the
sl@0
    16
 * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
sl@0
    17
 * Boston, MA 02111-1307, USA.
sl@0
    18
 */
sl@0
    19
sl@0
    20
#undef G_DISABLE_ASSERT
sl@0
    21
#undef G_LOG_DOMAIN
sl@0
    22
sl@0
    23
#undef G_DISABLE_ASSERT
sl@0
    24
#undef G_DISABLE_CHECKS
sl@0
    25
#undef G_DISABLE_CAST_CHECKS
sl@0
    26
sl@0
    27
#include <string.h>
sl@0
    28
sl@0
    29
#include <glib-object.h>
sl@0
    30
sl@0
    31
#include "testcommon.h"
sl@0
    32
sl@0
    33
#ifdef SYMBIAN
sl@0
    34
#include "mrt2_glib2_test.h"
sl@0
    35
#endif /*SYMBIAN*/
sl@0
    36
sl@0
    37
sl@0
    38
/* Tests for all cclosure_marshal APIs */
sl@0
    39
sl@0
    40
/*
sl@0
    41
 * TestObject, a parent class for TestObject
sl@0
    42
 */
sl@0
    43
#define TEST_TYPE_OBJECT          (test_object_get_type ())
sl@0
    44
typedef struct _TestObject        TestObject;
sl@0
    45
typedef struct _TestObjectClass   TestObjectClass;
sl@0
    46
sl@0
    47
typedef struct 
sl@0
    48
{
sl@0
    49
   int a;
sl@0
    50
   char c;		
sl@0
    51
	
sl@0
    52
}TestInputClass;
sl@0
    53
sl@0
    54
struct _TestObject
sl@0
    55
{
sl@0
    56
   GObject parent_instance;
sl@0
    57
};
sl@0
    58
sl@0
    59
struct _TestObjectClass
sl@0
    60
{
sl@0
    61
  GObjectClass parent_class;
sl@0
    62
sl@0
    63
  void   (*test_signal1) (TestObject *tobject,
sl@0
    64
			    gint        param);
sl@0
    65
  
sl@0
    66
  //flags as parameter == ulong
sl@0
    67
  gboolean  (*test_signal2) (TestObject *tobject,
sl@0
    68
			    gulong        param);
sl@0
    69
  
sl@0
    70
  void  (*test_signal3) (TestObject *tobject,
sl@0
    71
			    gpointer      param);
sl@0
    72
			    
sl@0
    73
  void (*test_signal4) (TestObject *tobject,
sl@0
    74
			    gchar      param);   
sl@0
    75
			    
sl@0
    76
  void (*test_signal5) (TestObject *tobject,
sl@0
    77
			    gdouble    param);  
sl@0
    78
  
sl@0
    79
  //enum == long		    
sl@0
    80
  void (*test_signal6) (TestObject *tobject,
sl@0
    81
			    glong    param);    			    
sl@0
    82
sl@0
    83
  void (*test_signal7) (TestObject *tobject,
sl@0
    84
			    gulong    param);    	
sl@0
    85
			    
sl@0
    86
  void (*test_signal8) (TestObject *tobject,
sl@0
    87
			    gfloat    param);   				    		    
sl@0
    88
sl@0
    89
  void (*test_signal9) (TestObject *tobject,
sl@0
    90
			    glong    param);  
sl@0
    91
			    
sl@0
    92
  //object
sl@0
    93
  void (*test_signal10) (TestObject *tobject,
sl@0
    94
			    GObject  *param);  
sl@0
    95
			     				  
sl@0
    96
  //pointer
sl@0
    97
  void (*test_signal11) (TestObject *tobject,
sl@0
    98
			    gpointer  param); 		     				  	    		    
sl@0
    99
			    
sl@0
   100
  void (*test_signal12) (TestObject *tobject,
sl@0
   101
			    gchar*  param); 		     				  	    		    
sl@0
   102
  			    
sl@0
   103
  void (*test_signal13) (TestObject *tobject,
sl@0
   104
			    guchar  param); 
sl@0
   105
			    
sl@0
   106
  void (*test_signal14) (TestObject *tobject,
sl@0
   107
			    guint  param); 		
sl@0
   108
  
sl@0
   109
  void (*test_signal15) (TestObject *tobject,
sl@0
   110
			    gulong  param); 					    	    		     				  	    		    
sl@0
   111
sl@0
   112
  void (*test_signal16) (TestObject *tobject,
sl@0
   113
			    guint  param1,
sl@0
   114
			    gpointer param2); 					    	    		     				  	    		    
sl@0
   115
sl@0
   116
  void (*test_signal17) (TestObject *tobject,
sl@0
   117
			    GParamSpec *param); 					    	    		     				  	    		    
sl@0
   118
};
sl@0
   119
sl@0
   120
static GType test_object_get_type (void);
sl@0
   121
sl@0
   122
/* Test input for Enums */
sl@0
   123
enum
sl@0
   124
{
sl@0
   125
   TEST_ENUM1,
sl@0
   126
   TEST_ENUM2
sl@0
   127
};
sl@0
   128
sl@0
   129
//VOID__BOOLEAN
sl@0
   130
void
sl@0
   131
test_object_real_signal1 (TestObject *tobject,
sl@0
   132
			  gint        param)
sl@0
   133
{
sl@0
   134
  g_assert(((gint)param == 10));
sl@0
   135
}
sl@0
   136
sl@0
   137
//BOOLEAN__FLAGS
sl@0
   138
gboolean
sl@0
   139
test_object_signal2_callback_before (TestObject *tobject,
sl@0
   140
				     gulong        param)
sl@0
   141
{
sl@0
   142
  switch (param)
sl@0
   143
    {
sl@0
   144
    case 1: return TRUE;
sl@0
   145
    case 2: return FALSE;
sl@0
   146
    case 3: return FALSE;
sl@0
   147
    case 4: return FALSE;
sl@0
   148
    }
sl@0
   149
sl@0
   150
  g_assert_not_reached ();
sl@0
   151
  return FALSE;
sl@0
   152
}
sl@0
   153
sl@0
   154
gboolean
sl@0
   155
test_object_real_signal2 (TestObject *tobject,
sl@0
   156
			  gulong        param)
sl@0
   157
{
sl@0
   158
  switch (param)
sl@0
   159
    {
sl@0
   160
    case 1: g_assert_not_reached (); return FALSE;
sl@0
   161
    case 2: return TRUE;
sl@0
   162
    case 3: return FALSE;
sl@0
   163
    case 4: return FALSE;
sl@0
   164
    }
sl@0
   165
  
sl@0
   166
  g_assert_not_reached ();
sl@0
   167
  return FALSE;
sl@0
   168
}
sl@0
   169
sl@0
   170
gboolean
sl@0
   171
test_object_signal2_callback_after (TestObject *tobject,
sl@0
   172
				     gulong        param)
sl@0
   173
{
sl@0
   174
  switch (param)
sl@0
   175
    {
sl@0
   176
    case 1: g_assert_not_reached (); return FALSE;
sl@0
   177
    case 2: g_assert_not_reached (); return FALSE;
sl@0
   178
    case 3: return TRUE;
sl@0
   179
    case 4: return FALSE;
sl@0
   180
    }
sl@0
   181
      
sl@0
   182
  g_assert_not_reached ();
sl@0
   183
  return FALSE;
sl@0
   184
}
sl@0
   185
sl@0
   186
//VOID__BOXED
sl@0
   187
void
sl@0
   188
test_object_real_signal3 (TestObject *tobject,
sl@0
   189
			  gpointer        param)
sl@0
   190
{
sl@0
   191
  g_assert((strcmp(param, "test-string") == 0));
sl@0
   192
}
sl@0
   193
sl@0
   194
//VOID__CHAR
sl@0
   195
void
sl@0
   196
test_object_real_signal4 (TestObject *tobject,
sl@0
   197
	    	  gchar        param)
sl@0
   198
{
sl@0
   199
  g_assert(((gchar)param == 'A'));  
sl@0
   200
}
sl@0
   201
sl@0
   202
//VOID__DOUBLE
sl@0
   203
void
sl@0
   204
test_object_real_signal5 (TestObject *tobject,
sl@0
   205
	    	  gdouble       param)
sl@0
   206
{
sl@0
   207
  g_assert(((gdouble)param == 2500000));  
sl@0
   208
}
sl@0
   209
sl@0
   210
 //VOID__ENUM
sl@0
   211
void
sl@0
   212
test_object_real_signal6 (TestObject *tobject,
sl@0
   213
	    	  glong       param)
sl@0
   214
{
sl@0
   215
  g_assert(((glong)param == TEST_ENUM2));  
sl@0
   216
}
sl@0
   217
 
sl@0
   218
//VOID__FLAGS
sl@0
   219
void
sl@0
   220
test_object_real_signal7 (TestObject *tobject,
sl@0
   221
	    	  gulong       param)
sl@0
   222
{
sl@0
   223
  g_assert(((gulong)param == 1980l));  
sl@0
   224
}
sl@0
   225
sl@0
   226
//VOID__FLOAT
sl@0
   227
void
sl@0
   228
test_object_real_signal8 (TestObject *tobject,
sl@0
   229
	    	  gfloat       param)
sl@0
   230
{
sl@0
   231
  g_assert(((gfloat)param == 11.23f));    
sl@0
   232
}
sl@0
   233
sl@0
   234
//VOID__LONG
sl@0
   235
void
sl@0
   236
test_object_real_signal9 (TestObject *tobject,
sl@0
   237
	    	  glong       param)
sl@0
   238
{
sl@0
   239
  g_assert(((glong)param == -748l));   
sl@0
   240
}
sl@0
   241
sl@0
   242
//VOID__OBJECT
sl@0
   243
void
sl@0
   244
test_object_real_signal10 (TestObject *tobject,
sl@0
   245
	    	   GObject  *param)
sl@0
   246
{  
sl@0
   247
  g_assert(G_IS_OBJECT(param) == TRUE);  
sl@0
   248
}
sl@0
   249
sl@0
   250
//VOID__STRING
sl@0
   251
void
sl@0
   252
test_object_real_signal12 (TestObject *tobject,
sl@0
   253
	    	  gchar*      param)
sl@0
   254
{  
sl@0
   255
  g_assert((strcmp(param, "string_input") == 0));  
sl@0
   256
}
sl@0
   257
sl@0
   258
//VOID__UCHAR
sl@0
   259
void
sl@0
   260
test_object_real_signal13 (TestObject *tobject,
sl@0
   261
	    	  guchar      param)
sl@0
   262
{  
sl@0
   263
  g_assert(param == '>');  
sl@0
   264
}
sl@0
   265
sl@0
   266
sl@0
   267
//VOID__UINT
sl@0
   268
void
sl@0
   269
test_object_real_signal14 (TestObject *tobject,
sl@0
   270
	    	  guint     param)
sl@0
   271
{  
sl@0
   272
  g_assert(param == 10000);  
sl@0
   273
}
sl@0
   274
sl@0
   275
//VOID__UINT_POINTER
sl@0
   276
void
sl@0
   277
test_object_real_signal16 (TestObject *tobject,
sl@0
   278
	    	  guint     param1,
sl@0
   279
	    	  gpointer  param2)
sl@0
   280
{  
sl@0
   281
  g_assert((param1 == 10000) && (strcmp(param2, "test-string") == 0));  
sl@0
   282
}
sl@0
   283
sl@0
   284
//VOID__PARAM
sl@0
   285
void
sl@0
   286
test_object_real_signal17 (TestObject *tobject,
sl@0
   287
	    	  GParamSpec      *param)	    	  
sl@0
   288
{  
sl@0
   289
  g_assert(G_IS_PARAM_SPEC(param) == TRUE);
sl@0
   290
  g_assert(!strcmp(param->_nick , "Hello"));
sl@0
   291
  g_assert (!strcmp(param->name , "String1"));  
sl@0
   292
}
sl@0
   293
sl@0
   294
//Class init function
sl@0
   295
static void
sl@0
   296
test_object_class_init (TestObjectClass *class)
sl@0
   297
{
sl@0
   298
  class->test_signal1 = test_object_real_signal1;
sl@0
   299
  class->test_signal2 = test_object_real_signal2;
sl@0
   300
  class->test_signal3 = test_object_real_signal3;
sl@0
   301
  class->test_signal4 = test_object_real_signal4;
sl@0
   302
  class->test_signal5 = test_object_real_signal5;
sl@0
   303
  class->test_signal6 = test_object_real_signal6;
sl@0
   304
  class->test_signal7 = test_object_real_signal7;
sl@0
   305
  class->test_signal8 = test_object_real_signal8;
sl@0
   306
  class->test_signal9 = test_object_real_signal9;  
sl@0
   307
  class->test_signal10 = test_object_real_signal10;  
sl@0
   308
  class->test_signal11= test_object_real_signal3; //since both are doing the same
sl@0
   309
  class->test_signal12= test_object_real_signal12;
sl@0
   310
  class->test_signal13= test_object_real_signal13;
sl@0
   311
  class->test_signal14= test_object_real_signal14;
sl@0
   312
  class->test_signal15= test_object_real_signal7; //both are doing the same comparison
sl@0
   313
  class->test_signal16= test_object_real_signal16; 
sl@0
   314
  class->test_signal17= test_object_real_signal17; 
sl@0
   315
  
sl@0
   316
  g_signal_new ("test-signal1",
sl@0
   317
		G_OBJECT_CLASS_TYPE (class),
sl@0
   318
		G_SIGNAL_RUN_LAST,
sl@0
   319
		G_STRUCT_OFFSET (TestObjectClass, test_signal1),
sl@0
   320
		NULL, NULL,
sl@0
   321
		g_cclosure_marshal_VOID__BOOLEAN ,
sl@0
   322
		G_TYPE_NONE, 1, G_TYPE_INT);
sl@0
   323
  
sl@0
   324
  g_signal_new ("test-signal2",
sl@0
   325
		G_OBJECT_CLASS_TYPE (class),
sl@0
   326
		G_SIGNAL_RUN_LAST,
sl@0
   327
		G_STRUCT_OFFSET (TestObjectClass, test_signal2),
sl@0
   328
		g_signal_accumulator_true_handled, NULL,
sl@0
   329
		g_cclosure_marshal_BOOLEAN__FLAGS,
sl@0
   330
		G_TYPE_BOOLEAN, 1, G_TYPE_ULONG);
sl@0
   331
		
sl@0
   332
  g_signal_new ("test-signal3",
sl@0
   333
		G_OBJECT_CLASS_TYPE (class),
sl@0
   334
		G_SIGNAL_RUN_LAST,
sl@0
   335
		G_STRUCT_OFFSET (TestObjectClass, test_signal3),
sl@0
   336
		NULL, NULL,
sl@0
   337
		g_cclosure_marshal_VOID__BOXED,
sl@0
   338
		G_TYPE_NONE, 1, G_TYPE_POINTER);
sl@0
   339
		
sl@0
   340
  g_signal_new ("test-signal4",
sl@0
   341
		G_OBJECT_CLASS_TYPE (class),
sl@0
   342
		G_SIGNAL_RUN_LAST,
sl@0
   343
		G_STRUCT_OFFSET (TestObjectClass, test_signal4),
sl@0
   344
		NULL, NULL,
sl@0
   345
		g_cclosure_marshal_VOID__CHAR,
sl@0
   346
		G_TYPE_NONE, 1, G_TYPE_CHAR);
sl@0
   347
sl@0
   348
  g_signal_new ("test-signal5",
sl@0
   349
		G_OBJECT_CLASS_TYPE (class),
sl@0
   350
		G_SIGNAL_RUN_LAST,
sl@0
   351
		G_STRUCT_OFFSET (TestObjectClass, test_signal5),
sl@0
   352
		NULL, NULL,
sl@0
   353
		g_cclosure_marshal_VOID__DOUBLE,
sl@0
   354
		G_TYPE_NONE, 1, G_TYPE_DOUBLE);
sl@0
   355
sl@0
   356
  g_signal_new ("test-signal6",
sl@0
   357
		G_OBJECT_CLASS_TYPE (class),
sl@0
   358
		G_SIGNAL_RUN_LAST,
sl@0
   359
		G_STRUCT_OFFSET (TestObjectClass, test_signal6),
sl@0
   360
		NULL, NULL,
sl@0
   361
		g_cclosure_marshal_VOID__ENUM,
sl@0
   362
		G_TYPE_NONE, 1, G_TYPE_LONG);
sl@0
   363
sl@0
   364
  g_signal_new ("test-signal7",
sl@0
   365
		G_OBJECT_CLASS_TYPE (class),
sl@0
   366
		G_SIGNAL_RUN_LAST,
sl@0
   367
		G_STRUCT_OFFSET (TestObjectClass, test_signal7),
sl@0
   368
		NULL, NULL,
sl@0
   369
		g_cclosure_marshal_VOID__FLAGS,
sl@0
   370
		G_TYPE_NONE, 1, G_TYPE_ULONG);		
sl@0
   371
			
sl@0
   372
  g_signal_new ("test-signal8",
sl@0
   373
		G_OBJECT_CLASS_TYPE (class),
sl@0
   374
		G_SIGNAL_RUN_LAST,
sl@0
   375
		G_STRUCT_OFFSET (TestObjectClass, test_signal8),
sl@0
   376
		NULL, NULL,
sl@0
   377
		g_cclosure_marshal_VOID__FLOAT,
sl@0
   378
		G_TYPE_NONE, 1, G_TYPE_FLOAT);		
sl@0
   379
		
sl@0
   380
  g_signal_new ("test-signal9",
sl@0
   381
		G_OBJECT_CLASS_TYPE (class),
sl@0
   382
		G_SIGNAL_RUN_LAST,
sl@0
   383
		G_STRUCT_OFFSET (TestObjectClass, test_signal9),
sl@0
   384
		NULL, NULL,
sl@0
   385
		g_cclosure_marshal_VOID__LONG,
sl@0
   386
		G_TYPE_NONE, 1, G_TYPE_LONG);
sl@0
   387
		
sl@0
   388
  g_signal_new ("test-signal10",
sl@0
   389
		G_OBJECT_CLASS_TYPE (class),
sl@0
   390
		G_SIGNAL_RUN_LAST,
sl@0
   391
		G_STRUCT_OFFSET (TestObjectClass, test_signal10),
sl@0
   392
		NULL, NULL,
sl@0
   393
		g_cclosure_marshal_VOID__OBJECT,
sl@0
   394
		G_TYPE_NONE, 1, TEST_TYPE_OBJECT);	
sl@0
   395
		
sl@0
   396
   g_signal_new ("test-signal11",
sl@0
   397
		G_OBJECT_CLASS_TYPE (class),
sl@0
   398
		G_SIGNAL_RUN_LAST,
sl@0
   399
		G_STRUCT_OFFSET (TestObjectClass, test_signal11),
sl@0
   400
		NULL, NULL,
sl@0
   401
		g_cclosure_marshal_VOID__POINTER,
sl@0
   402
		G_TYPE_NONE, 1, G_TYPE_POINTER);
sl@0
   403
		
sl@0
   404
   g_signal_new ("test-signal12",
sl@0
   405
		G_OBJECT_CLASS_TYPE (class),
sl@0
   406
		G_SIGNAL_RUN_LAST,
sl@0
   407
		G_STRUCT_OFFSET (TestObjectClass, test_signal12),
sl@0
   408
		NULL, NULL,
sl@0
   409
		g_cclosure_marshal_VOID__STRING,
sl@0
   410
		G_TYPE_NONE, 1, G_TYPE_STRING);	
sl@0
   411
		
sl@0
   412
	g_signal_new ("test-signal13",
sl@0
   413
		G_OBJECT_CLASS_TYPE (class),
sl@0
   414
		G_SIGNAL_RUN_LAST,
sl@0
   415
		G_STRUCT_OFFSET (TestObjectClass, test_signal13),
sl@0
   416
		NULL, NULL,
sl@0
   417
		g_cclosure_marshal_VOID__UCHAR,
sl@0
   418
		G_TYPE_NONE, 1, G_TYPE_UCHAR);	
sl@0
   419
		
sl@0
   420
   	g_signal_new ("test-signal14",
sl@0
   421
		G_OBJECT_CLASS_TYPE (class),
sl@0
   422
		G_SIGNAL_RUN_LAST,
sl@0
   423
		G_STRUCT_OFFSET (TestObjectClass, test_signal14),
sl@0
   424
		NULL, NULL,
sl@0
   425
		g_cclosure_marshal_VOID__UINT,
sl@0
   426
		G_TYPE_NONE, 1, G_TYPE_UINT);
sl@0
   427
	
sl@0
   428
	g_signal_new ("test-signal15",
sl@0
   429
		G_OBJECT_CLASS_TYPE (class),
sl@0
   430
		G_SIGNAL_RUN_LAST,
sl@0
   431
		G_STRUCT_OFFSET (TestObjectClass, test_signal15),
sl@0
   432
		NULL, NULL,
sl@0
   433
		g_cclosure_marshal_VOID__ULONG,
sl@0
   434
		G_TYPE_NONE, 1, G_TYPE_ULONG);
sl@0
   435
		
sl@0
   436
    g_signal_new ("test-signal16",
sl@0
   437
		G_OBJECT_CLASS_TYPE (class),
sl@0
   438
		G_SIGNAL_RUN_LAST,
sl@0
   439
		G_STRUCT_OFFSET (TestObjectClass, test_signal16),
sl@0
   440
		NULL, NULL,
sl@0
   441
		g_cclosure_marshal_VOID__UINT_POINTER,
sl@0
   442
		G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_POINTER);	
sl@0
   443
		
sl@0
   444
	g_signal_new ("test-signal17",
sl@0
   445
		G_OBJECT_CLASS_TYPE (class),
sl@0
   446
		G_SIGNAL_RUN_LAST,
sl@0
   447
		G_STRUCT_OFFSET (TestObjectClass, test_signal17),
sl@0
   448
		NULL, NULL,
sl@0
   449
		g_cclosure_marshal_VOID__PARAM,
sl@0
   450
		G_TYPE_NONE, 1, G_TYPE_PARAM);											
sl@0
   451
}
sl@0
   452
sl@0
   453
static DEFINE_TYPE(TestObject, test_object,
sl@0
   454
		   test_object_class_init, NULL, NULL,
sl@0
   455
		   G_TYPE_OBJECT)		   
sl@0
   456
sl@0
   457
int
sl@0
   458
main (int   argc,
sl@0
   459
      char *argv[])
sl@0
   460
{
sl@0
   461
  TestObject *object;  
sl@0
   462
  gboolean bool_result;
sl@0
   463
  gpointer i_string = "test-string";
sl@0
   464
  gchar    i_char   = 'A';
sl@0
   465
  gdouble  i_double = 2500000; //typically 8 bytes  
sl@0
   466
  gfloat   i_float  = 11.23f;
sl@0
   467
  gulong   i_ulong  = 1980l;
sl@0
   468
  glong    i_long 	= -748l;
sl@0
   469
  gchar*   i_char_string = "string_input";
sl@0
   470
  guchar   i_uchar  ='>'; 
sl@0
   471
  TestObject *i_input_obj;  	
sl@0
   472
  GParamFlags i_flags;
sl@0
   473
  GParamSpec* i_paramSpec;	
sl@0
   474
  	
sl@0
   475
  #ifdef SYMBIAN
sl@0
   476
  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);
sl@0
   477
  #endif /*SYMBIAN*/
sl@0
   478
	  
sl@0
   479
sl@0
   480
  /*g_log_set_always_fatal (g_log_set_always_fatal (G_LOG_FATAL_MASK) |
sl@0
   481
			  G_LOG_LEVEL_WARNING |
sl@0
   482
			  G_LOG_LEVEL_CRITICAL);*/
sl@0
   483
  g_type_init ();
sl@0
   484
sl@0
   485
  object = g_object_new (TEST_TYPE_OBJECT, NULL);
sl@0
   486
sl@0
   487
  //VOID__BOOLEAN  
sl@0
   488
  g_signal_emit_by_name (object, "test-signal1", 10, 0);  
sl@0
   489
  
sl@0
   490
sl@0
   491
  //BOOLEAN__FLAGS
sl@0
   492
  g_signal_connect (object, "test-signal2",
sl@0
   493
		    G_CALLBACK (test_object_signal2_callback_before), NULL);
sl@0
   494
  g_signal_connect_after (object, "test-signal2",
sl@0
   495
			  G_CALLBACK (test_object_signal2_callback_after), NULL);
sl@0
   496
  
sl@0
   497
  bool_result = FALSE;
sl@0
   498
  g_signal_emit_by_name (object, "test-signal2", 1, &bool_result);
sl@0
   499
  g_assert (bool_result == TRUE);
sl@0
   500
  bool_result = FALSE;
sl@0
   501
  g_signal_emit_by_name (object, "test-signal2", 2, &bool_result);
sl@0
   502
  g_assert (bool_result == TRUE);
sl@0
   503
  bool_result = FALSE;
sl@0
   504
  g_signal_emit_by_name (object, "test-signal2", 3, &bool_result);
sl@0
   505
  g_assert (bool_result == TRUE);
sl@0
   506
  bool_result = TRUE;
sl@0
   507
  g_signal_emit_by_name (object, "test-signal2", 4, &bool_result);
sl@0
   508
  g_assert (bool_result == FALSE);
sl@0
   509
  
sl@0
   510
 
sl@0
   511
  //VOID__BOXED
sl@0
   512
  g_signal_emit_by_name (object, "test-signal3", i_string, NULL);
sl@0
   513
  
sl@0
   514
  //VOID__CHAR
sl@0
   515
  g_signal_emit_by_name (object, "test-signal4", i_char, NULL);
sl@0
   516
  
sl@0
   517
  //VOID__DOUBLE
sl@0
   518
  g_signal_emit_by_name (object, "test-signal5", i_double, NULL);
sl@0
   519
  
sl@0
   520
  //VOID__ENUM
sl@0
   521
  g_signal_emit_by_name (object, "test-signal6", TEST_ENUM2, NULL);
sl@0
   522
sl@0
   523
  //VOID__FLAGS
sl@0
   524
  g_signal_emit_by_name (object, "test-signal7", i_ulong, NULL);
sl@0
   525
  
sl@0
   526
  //VOID__FLOAT
sl@0
   527
  g_signal_emit_by_name (object, "test-signal8", i_float, NULL);
sl@0
   528
  
sl@0
   529
  //VOID__FLOAT
sl@0
   530
  g_signal_emit_by_name (object, "test-signal9", i_long, NULL);  
sl@0
   531
  
sl@0
   532
  //VOID__OBJECT
sl@0
   533
  i_input_obj = g_object_new (TEST_TYPE_OBJECT, NULL);
sl@0
   534
  g_signal_emit_by_name (object, "test-signal10", i_input_obj, NULL);  
sl@0
   535
  
sl@0
   536
  //VOID__POINTER
sl@0
   537
  g_signal_emit_by_name (object, "test-signal11", i_string, NULL);
sl@0
   538
  
sl@0
   539
  //VOID__STRING
sl@0
   540
  g_signal_emit_by_name (object, "test-signal12", i_char_string, NULL);
sl@0
   541
  
sl@0
   542
  //VOID__UCHAR  
sl@0
   543
  g_signal_emit_by_name (object, "test-signal13", i_uchar, NULL);
sl@0
   544
  
sl@0
   545
  //VOID__UINT
sl@0
   546
  g_signal_emit_by_name (object, "test-signal14", 10000, NULL);
sl@0
   547
  
sl@0
   548
  //VOID__ULONG
sl@0
   549
  g_signal_emit_by_name (object, "test-signal15", i_ulong, NULL);
sl@0
   550
  
sl@0
   551
  //VOID_UNIT__POINTER
sl@0
   552
  g_signal_emit_by_name (object, "test-signal16", 10000, i_string,NULL);  
sl@0
   553
 
sl@0
   554
  //VOID__PARAM  
sl@0
   555
  i_paramSpec = g_param_spec_uchar("String1","Hello","World", 0,100,10, i_flags);
sl@0
   556
  g_signal_emit_by_name (object, "test-signal17", i_paramSpec, NULL);   
sl@0
   557
  
sl@0
   558
  #if SYMBIAN
sl@0
   559
  testResultXml("closure-marshal");
sl@0
   560
  #endif
sl@0
   561
  
sl@0
   562
  return 0;
sl@0
   563
}