sl@0: /* GObject - GLib Type, Object, Parameter and Signal Library
sl@0:  * Copyright (C) 2001, 2003 Red Hat, Inc.
sl@0:  *
sl@0:  * This library is free software; you can redistribute it and/or
sl@0:  * modify it under the terms of the GNU Lesser General Public
sl@0:  * License as published by the Free Software Foundation; either
sl@0:  * version 2 of the License, or (at your option) any later version.
sl@0:  *
sl@0:  * This library is distributed in the hope that it will be useful,
sl@0:  * but WITHOUT ANY WARRANTY; without even the implied warranty of
sl@0:  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
sl@0:  * Lesser General Public License for more details.
sl@0:  *
sl@0:  * You should have received a copy of the GNU Lesser General
sl@0:  * Public License along with this library; if not, write to the
sl@0:  * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
sl@0:  * Boston, MA 02111-1307, USA.
sl@0:  */
sl@0: 
sl@0: #undef G_DISABLE_ASSERT
sl@0: #undef G_LOG_DOMAIN
sl@0: 
sl@0: #undef G_DISABLE_ASSERT
sl@0: #undef G_DISABLE_CHECKS
sl@0: #undef G_DISABLE_CAST_CHECKS
sl@0: 
sl@0: #include <string.h>
sl@0: 
sl@0: #include <glib-object.h>
sl@0: 
sl@0: #include "testcommon.h"
sl@0: 
sl@0: #ifdef SYMBIAN
sl@0: #include "mrt2_glib2_test.h"
sl@0: #endif /*SYMBIAN*/
sl@0: 
sl@0: 
sl@0: /* Tests for all cclosure_marshal APIs */
sl@0: 
sl@0: /*
sl@0:  * TestObject, a parent class for TestObject
sl@0:  */
sl@0: #define TEST_TYPE_OBJECT          (test_object_get_type ())
sl@0: typedef struct _TestObject        TestObject;
sl@0: typedef struct _TestObjectClass   TestObjectClass;
sl@0: 
sl@0: typedef struct 
sl@0: {
sl@0:    int a;
sl@0:    char c;		
sl@0: 	
sl@0: }TestInputClass;
sl@0: 
sl@0: struct _TestObject
sl@0: {
sl@0:    GObject parent_instance;
sl@0: };
sl@0: 
sl@0: struct _TestObjectClass
sl@0: {
sl@0:   GObjectClass parent_class;
sl@0: 
sl@0:   void   (*test_signal1) (TestObject *tobject,
sl@0: 			    gint        param);
sl@0:   
sl@0:   //flags as parameter == ulong
sl@0:   gboolean  (*test_signal2) (TestObject *tobject,
sl@0: 			    gulong        param);
sl@0:   
sl@0:   void  (*test_signal3) (TestObject *tobject,
sl@0: 			    gpointer      param);
sl@0: 			    
sl@0:   void (*test_signal4) (TestObject *tobject,
sl@0: 			    gchar      param);   
sl@0: 			    
sl@0:   void (*test_signal5) (TestObject *tobject,
sl@0: 			    gdouble    param);  
sl@0:   
sl@0:   //enum == long		    
sl@0:   void (*test_signal6) (TestObject *tobject,
sl@0: 			    glong    param);    			    
sl@0: 
sl@0:   void (*test_signal7) (TestObject *tobject,
sl@0: 			    gulong    param);    	
sl@0: 			    
sl@0:   void (*test_signal8) (TestObject *tobject,
sl@0: 			    gfloat    param);   				    		    
sl@0: 
sl@0:   void (*test_signal9) (TestObject *tobject,
sl@0: 			    glong    param);  
sl@0: 			    
sl@0:   //object
sl@0:   void (*test_signal10) (TestObject *tobject,
sl@0: 			    GObject  *param);  
sl@0: 			     				  
sl@0:   //pointer
sl@0:   void (*test_signal11) (TestObject *tobject,
sl@0: 			    gpointer  param); 		     				  	    		    
sl@0: 			    
sl@0:   void (*test_signal12) (TestObject *tobject,
sl@0: 			    gchar*  param); 		     				  	    		    
sl@0:   			    
sl@0:   void (*test_signal13) (TestObject *tobject,
sl@0: 			    guchar  param); 
sl@0: 			    
sl@0:   void (*test_signal14) (TestObject *tobject,
sl@0: 			    guint  param); 		
sl@0:   
sl@0:   void (*test_signal15) (TestObject *tobject,
sl@0: 			    gulong  param); 					    	    		     				  	    		    
sl@0: 
sl@0:   void (*test_signal16) (TestObject *tobject,
sl@0: 			    guint  param1,
sl@0: 			    gpointer param2); 					    	    		     				  	    		    
sl@0: 
sl@0:   void (*test_signal17) (TestObject *tobject,
sl@0: 			    GParamSpec *param); 					    	    		     				  	    		    
sl@0: };
sl@0: 
sl@0: static GType test_object_get_type (void);
sl@0: 
sl@0: /* Test input for Enums */
sl@0: enum
sl@0: {
sl@0:    TEST_ENUM1,
sl@0:    TEST_ENUM2
sl@0: };
sl@0: 
sl@0: //VOID__BOOLEAN
sl@0: void
sl@0: test_object_real_signal1 (TestObject *tobject,
sl@0: 			  gint        param)
sl@0: {
sl@0:   g_assert(((gint)param == 10));
sl@0: }
sl@0: 
sl@0: //BOOLEAN__FLAGS
sl@0: gboolean
sl@0: test_object_signal2_callback_before (TestObject *tobject,
sl@0: 				     gulong        param)
sl@0: {
sl@0:   switch (param)
sl@0:     {
sl@0:     case 1: return TRUE;
sl@0:     case 2: return FALSE;
sl@0:     case 3: return FALSE;
sl@0:     case 4: return FALSE;
sl@0:     }
sl@0: 
sl@0:   g_assert_not_reached ();
sl@0:   return FALSE;
sl@0: }
sl@0: 
sl@0: gboolean
sl@0: test_object_real_signal2 (TestObject *tobject,
sl@0: 			  gulong        param)
sl@0: {
sl@0:   switch (param)
sl@0:     {
sl@0:     case 1: g_assert_not_reached (); return FALSE;
sl@0:     case 2: return TRUE;
sl@0:     case 3: return FALSE;
sl@0:     case 4: return FALSE;
sl@0:     }
sl@0:   
sl@0:   g_assert_not_reached ();
sl@0:   return FALSE;
sl@0: }
sl@0: 
sl@0: gboolean
sl@0: test_object_signal2_callback_after (TestObject *tobject,
sl@0: 				     gulong        param)
sl@0: {
sl@0:   switch (param)
sl@0:     {
sl@0:     case 1: g_assert_not_reached (); return FALSE;
sl@0:     case 2: g_assert_not_reached (); return FALSE;
sl@0:     case 3: return TRUE;
sl@0:     case 4: return FALSE;
sl@0:     }
sl@0:       
sl@0:   g_assert_not_reached ();
sl@0:   return FALSE;
sl@0: }
sl@0: 
sl@0: //VOID__BOXED
sl@0: void
sl@0: test_object_real_signal3 (TestObject *tobject,
sl@0: 			  gpointer        param)
sl@0: {
sl@0:   g_assert((strcmp(param, "test-string") == 0));
sl@0: }
sl@0: 
sl@0: //VOID__CHAR
sl@0: void
sl@0: test_object_real_signal4 (TestObject *tobject,
sl@0: 	    	  gchar        param)
sl@0: {
sl@0:   g_assert(((gchar)param == 'A'));  
sl@0: }
sl@0: 
sl@0: //VOID__DOUBLE
sl@0: void
sl@0: test_object_real_signal5 (TestObject *tobject,
sl@0: 	    	  gdouble       param)
sl@0: {
sl@0:   g_assert(((gdouble)param == 2500000));  
sl@0: }
sl@0: 
sl@0:  //VOID__ENUM
sl@0: void
sl@0: test_object_real_signal6 (TestObject *tobject,
sl@0: 	    	  glong       param)
sl@0: {
sl@0:   g_assert(((glong)param == TEST_ENUM2));  
sl@0: }
sl@0:  
sl@0: //VOID__FLAGS
sl@0: void
sl@0: test_object_real_signal7 (TestObject *tobject,
sl@0: 	    	  gulong       param)
sl@0: {
sl@0:   g_assert(((gulong)param == 1980l));  
sl@0: }
sl@0: 
sl@0: //VOID__FLOAT
sl@0: void
sl@0: test_object_real_signal8 (TestObject *tobject,
sl@0: 	    	  gfloat       param)
sl@0: {
sl@0:   g_assert(((gfloat)param == 11.23f));    
sl@0: }
sl@0: 
sl@0: //VOID__LONG
sl@0: void
sl@0: test_object_real_signal9 (TestObject *tobject,
sl@0: 	    	  glong       param)
sl@0: {
sl@0:   g_assert(((glong)param == -748l));   
sl@0: }
sl@0: 
sl@0: //VOID__OBJECT
sl@0: void
sl@0: test_object_real_signal10 (TestObject *tobject,
sl@0: 	    	   GObject  *param)
sl@0: {  
sl@0:   g_assert(G_IS_OBJECT(param) == TRUE);  
sl@0: }
sl@0: 
sl@0: //VOID__STRING
sl@0: void
sl@0: test_object_real_signal12 (TestObject *tobject,
sl@0: 	    	  gchar*      param)
sl@0: {  
sl@0:   g_assert((strcmp(param, "string_input") == 0));  
sl@0: }
sl@0: 
sl@0: //VOID__UCHAR
sl@0: void
sl@0: test_object_real_signal13 (TestObject *tobject,
sl@0: 	    	  guchar      param)
sl@0: {  
sl@0:   g_assert(param == '>');  
sl@0: }
sl@0: 
sl@0: 
sl@0: //VOID__UINT
sl@0: void
sl@0: test_object_real_signal14 (TestObject *tobject,
sl@0: 	    	  guint     param)
sl@0: {  
sl@0:   g_assert(param == 10000);  
sl@0: }
sl@0: 
sl@0: //VOID__UINT_POINTER
sl@0: void
sl@0: test_object_real_signal16 (TestObject *tobject,
sl@0: 	    	  guint     param1,
sl@0: 	    	  gpointer  param2)
sl@0: {  
sl@0:   g_assert((param1 == 10000) && (strcmp(param2, "test-string") == 0));  
sl@0: }
sl@0: 
sl@0: //VOID__PARAM
sl@0: void
sl@0: test_object_real_signal17 (TestObject *tobject,
sl@0: 	    	  GParamSpec      *param)	    	  
sl@0: {  
sl@0:   g_assert(G_IS_PARAM_SPEC(param) == TRUE);
sl@0:   g_assert(!strcmp(param->_nick , "Hello"));
sl@0:   g_assert (!strcmp(param->name , "String1"));  
sl@0: }
sl@0: 
sl@0: //Class init function
sl@0: static void
sl@0: test_object_class_init (TestObjectClass *class)
sl@0: {
sl@0:   class->test_signal1 = test_object_real_signal1;
sl@0:   class->test_signal2 = test_object_real_signal2;
sl@0:   class->test_signal3 = test_object_real_signal3;
sl@0:   class->test_signal4 = test_object_real_signal4;
sl@0:   class->test_signal5 = test_object_real_signal5;
sl@0:   class->test_signal6 = test_object_real_signal6;
sl@0:   class->test_signal7 = test_object_real_signal7;
sl@0:   class->test_signal8 = test_object_real_signal8;
sl@0:   class->test_signal9 = test_object_real_signal9;  
sl@0:   class->test_signal10 = test_object_real_signal10;  
sl@0:   class->test_signal11= test_object_real_signal3; //since both are doing the same
sl@0:   class->test_signal12= test_object_real_signal12;
sl@0:   class->test_signal13= test_object_real_signal13;
sl@0:   class->test_signal14= test_object_real_signal14;
sl@0:   class->test_signal15= test_object_real_signal7; //both are doing the same comparison
sl@0:   class->test_signal16= test_object_real_signal16; 
sl@0:   class->test_signal17= test_object_real_signal17; 
sl@0:   
sl@0:   g_signal_new ("test-signal1",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal1),
sl@0: 		NULL, NULL,
sl@0: 		g_cclosure_marshal_VOID__BOOLEAN ,
sl@0: 		G_TYPE_NONE, 1, G_TYPE_INT);
sl@0:   
sl@0:   g_signal_new ("test-signal2",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal2),
sl@0: 		g_signal_accumulator_true_handled, NULL,
sl@0: 		g_cclosure_marshal_BOOLEAN__FLAGS,
sl@0: 		G_TYPE_BOOLEAN, 1, G_TYPE_ULONG);
sl@0: 		
sl@0:   g_signal_new ("test-signal3",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal3),
sl@0: 		NULL, NULL,
sl@0: 		g_cclosure_marshal_VOID__BOXED,
sl@0: 		G_TYPE_NONE, 1, G_TYPE_POINTER);
sl@0: 		
sl@0:   g_signal_new ("test-signal4",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal4),
sl@0: 		NULL, NULL,
sl@0: 		g_cclosure_marshal_VOID__CHAR,
sl@0: 		G_TYPE_NONE, 1, G_TYPE_CHAR);
sl@0: 
sl@0:   g_signal_new ("test-signal5",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal5),
sl@0: 		NULL, NULL,
sl@0: 		g_cclosure_marshal_VOID__DOUBLE,
sl@0: 		G_TYPE_NONE, 1, G_TYPE_DOUBLE);
sl@0: 
sl@0:   g_signal_new ("test-signal6",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal6),
sl@0: 		NULL, NULL,
sl@0: 		g_cclosure_marshal_VOID__ENUM,
sl@0: 		G_TYPE_NONE, 1, G_TYPE_LONG);
sl@0: 
sl@0:   g_signal_new ("test-signal7",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal7),
sl@0: 		NULL, NULL,
sl@0: 		g_cclosure_marshal_VOID__FLAGS,
sl@0: 		G_TYPE_NONE, 1, G_TYPE_ULONG);		
sl@0: 			
sl@0:   g_signal_new ("test-signal8",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal8),
sl@0: 		NULL, NULL,
sl@0: 		g_cclosure_marshal_VOID__FLOAT,
sl@0: 		G_TYPE_NONE, 1, G_TYPE_FLOAT);		
sl@0: 		
sl@0:   g_signal_new ("test-signal9",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal9),
sl@0: 		NULL, NULL,
sl@0: 		g_cclosure_marshal_VOID__LONG,
sl@0: 		G_TYPE_NONE, 1, G_TYPE_LONG);
sl@0: 		
sl@0:   g_signal_new ("test-signal10",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal10),
sl@0: 		NULL, NULL,
sl@0: 		g_cclosure_marshal_VOID__OBJECT,
sl@0: 		G_TYPE_NONE, 1, TEST_TYPE_OBJECT);	
sl@0: 		
sl@0:    g_signal_new ("test-signal11",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal11),
sl@0: 		NULL, NULL,
sl@0: 		g_cclosure_marshal_VOID__POINTER,
sl@0: 		G_TYPE_NONE, 1, G_TYPE_POINTER);
sl@0: 		
sl@0:    g_signal_new ("test-signal12",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal12),
sl@0: 		NULL, NULL,
sl@0: 		g_cclosure_marshal_VOID__STRING,
sl@0: 		G_TYPE_NONE, 1, G_TYPE_STRING);	
sl@0: 		
sl@0: 	g_signal_new ("test-signal13",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal13),
sl@0: 		NULL, NULL,
sl@0: 		g_cclosure_marshal_VOID__UCHAR,
sl@0: 		G_TYPE_NONE, 1, G_TYPE_UCHAR);	
sl@0: 		
sl@0:    	g_signal_new ("test-signal14",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal14),
sl@0: 		NULL, NULL,
sl@0: 		g_cclosure_marshal_VOID__UINT,
sl@0: 		G_TYPE_NONE, 1, G_TYPE_UINT);
sl@0: 	
sl@0: 	g_signal_new ("test-signal15",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal15),
sl@0: 		NULL, NULL,
sl@0: 		g_cclosure_marshal_VOID__ULONG,
sl@0: 		G_TYPE_NONE, 1, G_TYPE_ULONG);
sl@0: 		
sl@0:     g_signal_new ("test-signal16",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal16),
sl@0: 		NULL, NULL,
sl@0: 		g_cclosure_marshal_VOID__UINT_POINTER,
sl@0: 		G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_POINTER);	
sl@0: 		
sl@0: 	g_signal_new ("test-signal17",
sl@0: 		G_OBJECT_CLASS_TYPE (class),
sl@0: 		G_SIGNAL_RUN_LAST,
sl@0: 		G_STRUCT_OFFSET (TestObjectClass, test_signal17),
sl@0: 		NULL, NULL,
sl@0: 		g_cclosure_marshal_VOID__PARAM,
sl@0: 		G_TYPE_NONE, 1, G_TYPE_PARAM);											
sl@0: }
sl@0: 
sl@0: static DEFINE_TYPE(TestObject, test_object,
sl@0: 		   test_object_class_init, NULL, NULL,
sl@0: 		   G_TYPE_OBJECT)		   
sl@0: 
sl@0: int
sl@0: main (int   argc,
sl@0:       char *argv[])
sl@0: {
sl@0:   TestObject *object;  
sl@0:   gboolean bool_result;
sl@0:   gpointer i_string = "test-string";
sl@0:   gchar    i_char   = 'A';
sl@0:   gdouble  i_double = 2500000; //typically 8 bytes  
sl@0:   gfloat   i_float  = 11.23f;
sl@0:   gulong   i_ulong  = 1980l;
sl@0:   glong    i_long 	= -748l;
sl@0:   gchar*   i_char_string = "string_input";
sl@0:   guchar   i_uchar  ='>'; 
sl@0:   TestObject *i_input_obj;  	
sl@0:   GParamFlags i_flags;
sl@0:   GParamSpec* i_paramSpec;	
sl@0:   	
sl@0:   #ifdef SYMBIAN
sl@0:   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:   #endif /*SYMBIAN*/
sl@0: 	  
sl@0: 
sl@0:   /*g_log_set_always_fatal (g_log_set_always_fatal (G_LOG_FATAL_MASK) |
sl@0: 			  G_LOG_LEVEL_WARNING |
sl@0: 			  G_LOG_LEVEL_CRITICAL);*/
sl@0:   g_type_init ();
sl@0: 
sl@0:   object = g_object_new (TEST_TYPE_OBJECT, NULL);
sl@0: 
sl@0:   //VOID__BOOLEAN  
sl@0:   g_signal_emit_by_name (object, "test-signal1", 10, 0);  
sl@0:   
sl@0: 
sl@0:   //BOOLEAN__FLAGS
sl@0:   g_signal_connect (object, "test-signal2",
sl@0: 		    G_CALLBACK (test_object_signal2_callback_before), NULL);
sl@0:   g_signal_connect_after (object, "test-signal2",
sl@0: 			  G_CALLBACK (test_object_signal2_callback_after), NULL);
sl@0:   
sl@0:   bool_result = FALSE;
sl@0:   g_signal_emit_by_name (object, "test-signal2", 1, &bool_result);
sl@0:   g_assert (bool_result == TRUE);
sl@0:   bool_result = FALSE;
sl@0:   g_signal_emit_by_name (object, "test-signal2", 2, &bool_result);
sl@0:   g_assert (bool_result == TRUE);
sl@0:   bool_result = FALSE;
sl@0:   g_signal_emit_by_name (object, "test-signal2", 3, &bool_result);
sl@0:   g_assert (bool_result == TRUE);
sl@0:   bool_result = TRUE;
sl@0:   g_signal_emit_by_name (object, "test-signal2", 4, &bool_result);
sl@0:   g_assert (bool_result == FALSE);
sl@0:   
sl@0:  
sl@0:   //VOID__BOXED
sl@0:   g_signal_emit_by_name (object, "test-signal3", i_string, NULL);
sl@0:   
sl@0:   //VOID__CHAR
sl@0:   g_signal_emit_by_name (object, "test-signal4", i_char, NULL);
sl@0:   
sl@0:   //VOID__DOUBLE
sl@0:   g_signal_emit_by_name (object, "test-signal5", i_double, NULL);
sl@0:   
sl@0:   //VOID__ENUM
sl@0:   g_signal_emit_by_name (object, "test-signal6", TEST_ENUM2, NULL);
sl@0: 
sl@0:   //VOID__FLAGS
sl@0:   g_signal_emit_by_name (object, "test-signal7", i_ulong, NULL);
sl@0:   
sl@0:   //VOID__FLOAT
sl@0:   g_signal_emit_by_name (object, "test-signal8", i_float, NULL);
sl@0:   
sl@0:   //VOID__FLOAT
sl@0:   g_signal_emit_by_name (object, "test-signal9", i_long, NULL);  
sl@0:   
sl@0:   //VOID__OBJECT
sl@0:   i_input_obj = g_object_new (TEST_TYPE_OBJECT, NULL);
sl@0:   g_signal_emit_by_name (object, "test-signal10", i_input_obj, NULL);  
sl@0:   
sl@0:   //VOID__POINTER
sl@0:   g_signal_emit_by_name (object, "test-signal11", i_string, NULL);
sl@0:   
sl@0:   //VOID__STRING
sl@0:   g_signal_emit_by_name (object, "test-signal12", i_char_string, NULL);
sl@0:   
sl@0:   //VOID__UCHAR  
sl@0:   g_signal_emit_by_name (object, "test-signal13", i_uchar, NULL);
sl@0:   
sl@0:   //VOID__UINT
sl@0:   g_signal_emit_by_name (object, "test-signal14", 10000, NULL);
sl@0:   
sl@0:   //VOID__ULONG
sl@0:   g_signal_emit_by_name (object, "test-signal15", i_ulong, NULL);
sl@0:   
sl@0:   //VOID_UNIT__POINTER
sl@0:   g_signal_emit_by_name (object, "test-signal16", 10000, i_string,NULL);  
sl@0:  
sl@0:   //VOID__PARAM  
sl@0:   i_paramSpec = g_param_spec_uchar("String1","Hello","World", 0,100,10, i_flags);
sl@0:   g_signal_emit_by_name (object, "test-signal17", i_paramSpec, NULL);   
sl@0:   
sl@0:   #if SYMBIAN
sl@0:   testResultXml("closure-marshal");
sl@0:   #endif
sl@0:   
sl@0:   return 0;
sl@0: }