diff options
| author | Havoc Pennington <hp@redhat.com> | 2003-09-04 00:21:36 +0000 | 
|---|---|---|
| committer | Havoc Pennington <hp@redhat.com> | 2003-09-04 00:21:36 +0000 | 
| commit | 636be6f92d4d8effd392ad1f894738849ec7af76 (patch) | |
| tree | 963e3d848ca3c3f78e07d1d92aaa3288558eb496 | |
| parent | 0453b2be603d4a8fcd12be3097b7eadc25838018 (diff) | |
2003-09-03  Havoc Pennington  <hp@pobox.com>
	* test/glib/Makefile.am: add this with random glib-linked test
	programs
	* glib/Makefile.am: remove the random test programs from here,
	leave only the unit tests
	* glib/dbus-gobject.c (_dbus_gobject_test): add test for
	uscore/javacaps conversion, and fix
	(get_object_property, set_object_property): change to .NET
	convention for mapping props to methods, set_FooBar/get_FooBar,
	since one language has such a convention we may as well copy it.
	Plus real methods in either getFooBar or get_foo_bar style won't
	collide with this convention.
| -rw-r--r-- | ChangeLog | 16 | ||||
| -rw-r--r-- | configure.in | 1 | ||||
| -rw-r--r-- | glib/Makefile.am | 34 | ||||
| -rw-r--r-- | glib/dbus-gobject.c | 63 | ||||
| -rw-r--r-- | test/Makefile.am | 7 | ||||
| -rw-r--r-- | test/glib/Makefile.am | 44 | ||||
| -rw-r--r-- | test/glib/test-dbus-glib.c (renamed from glib/test-dbus-glib.c) | 0 | ||||
| -rw-r--r-- | test/glib/test-profile.c (renamed from glib/test-profile.c) | 0 | ||||
| -rw-r--r-- | test/glib/test-thread-client.c (renamed from glib/test-thread-client.c) | 0 | ||||
| -rw-r--r-- | test/glib/test-thread-server.c (renamed from glib/test-thread-server.c) | 0 | ||||
| -rw-r--r-- | test/glib/test-thread.h (renamed from glib/test-thread.h) | 0 | 
11 files changed, 118 insertions, 47 deletions
@@ -1,3 +1,19 @@ +2003-09-03  Havoc Pennington  <hp@pobox.com> + +	* test/glib/Makefile.am: add this with random glib-linked test +	programs + +	* glib/Makefile.am: remove the random test programs from here, +	leave only the unit tests + +	* glib/dbus-gobject.c (_dbus_gobject_test): add test for  +	uscore/javacaps conversion, and fix	 +	(get_object_property, set_object_property): change to .NET +	convention for mapping props to methods, set_FooBar/get_FooBar,  +	since one language has such a convention we may as well copy it.  +	Plus real methods in either getFooBar or get_foo_bar style won't  +	collide with this convention. +  2003-09-01  Havoc Pennington  <hp@pobox.com>  	* glib/dbus-gparser.c: implement diff --git a/configure.in b/configure.in index 1125ef60..c403fd8c 100644 --- a/configure.in +++ b/configure.in @@ -826,6 +826,7 @@ mono/Makefile  bus/Makefile  tools/Makefile  test/Makefile +test/glib/Makefile  doc/Makefile  dbus-1.pc  dbus-glib-1.pc diff --git a/glib/Makefile.am b/glib/Makefile.am index f3b43ed3..65d71cfd 100644 --- a/glib/Makefile.am +++ b/glib/Makefile.am @@ -34,30 +34,9 @@ dbus_glib_tool_LDADD= $(DBUS_GLIB_TOOL_LIBS) libdbus-glib-1.la $(top_builddir)/d  if DBUS_BUILD_TESTS -if HAVE_GLIB_THREADS -THREAD_APPS=test-thread-server test-thread-client test-profile - -test_thread_server_SOURCES=				\ -	test-thread-server.c				\ -	test-thread.h - -test_thread_server_LDADD= $(DBUS_GLIB_THREADS_LIBS) $(top_builddir)/glib/libdbus-glib-1.la  - -test_thread_client_SOURCES=				\ -	test-thread-client.c				\ -	test-thread.h - -test_thread_client_LDADD= $(DBUS_GLIB_THREADS_LIBS) $(top_builddir)/glib/libdbus-glib-1.la  -endif -  ## we use noinst_PROGRAMS not check_PROGRAMS for TESTS so that we  ## build even when not doing "make check" -noinst_PROGRAMS= $(TESTS) test-dbus-glib $(THREAD_APPS) - -test_dbus_glib_SOURCES=				\ -	test-dbus-glib.c - -test_dbus_glib_LDADD= $(top_builddir)/glib/libdbus-glib-1.la +noinst_PROGRAMS= $(TESTS)  ## note that TESTS has special meaning (stuff to use in make check)  ## so if adding tests not to be run in make check, don't add them to  @@ -74,15 +53,4 @@ else  ### not building tests  TESTS= -if HAVE_GLIB_THREADS -noinst_PROGRAMS=test-profile -endif -  endif - -if HAVE_GLIB_THREADS -test_profile_SOURCES=				\ -	test-profile.c - -test_profile_LDADD= $(DBUS_GLIB_THREADS_LIBS) $(top_builddir)/glib/libdbus-glib-1.la  -endif
\ No newline at end of file diff --git a/glib/dbus-gobject.c b/glib/dbus-gobject.c index aa53265b..b0f6c139 100644 --- a/glib/dbus-gobject.c +++ b/glib/dbus-gobject.c @@ -35,7 +35,7 @@ static GStaticMutex info_hash_mutex = G_STATIC_MUTEX_INIT;  static GHashTable *info_hash = NULL;  static char* -javacaps_to_uscore (const char *caps) +wincaps_to_uscore (const char *caps)  {    const char *p;    GString *str; @@ -62,7 +62,7 @@ javacaps_to_uscore (const char *caps)  }  static char* -uscore_to_javacaps (const char *uscore) +uscore_to_wincaps (const char *uscore)  {    const char *p;    GString *str; @@ -233,11 +233,11 @@ handle_introspect (DBusConnection *connection,        can_get = (spec->flags & G_PARAM_READABLE) != 0; -      s = uscore_to_javacaps (spec->name); +      s = uscore_to_wincaps (spec->name);        if (can_set)          { -          g_string_append (xml, "    <method name=\"set"); +          g_string_append (xml, "    <method name=\"set_");            g_string_append (xml, s);            g_string_append (xml, "\">\n"); @@ -248,7 +248,7 @@ handle_introspect (DBusConnection *connection,        if (can_get)          { -          g_string_append (xml, "    <method name=\"get"); +          g_string_append (xml, "    <method name=\"get_");            g_string_append (xml, s);            g_string_append (xml, "\">\n"); @@ -578,13 +578,13 @@ gobject_message_function (DBusConnection  *connection,    /* If no metainfo, we can still do properties and signals     * via standard GLib introspection     */ -  setter = (member[0] == 's' && member[1] == 'e' && member[2] == 't'); -  getter = (member[0] == 'g' && member[1] == 'e' && member[2] == 't'); +  setter = (member[0] == 's' && member[1] == 'e' && member[2] == 't' && member[3] == '_'); +  getter = (member[0] == 'g' && member[1] == 'e' && member[2] == 't' && member[3] == '_');    if (!(setter || getter))      return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; -  s = javacaps_to_uscore (&member[3]); +  s = wincaps_to_uscore (&member[4]);    pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (object),                                          s); @@ -757,6 +757,7 @@ dbus_connection_register_gobject (DBusConnection        *connection,  /** @} */ /* end of public API */  #ifdef DBUS_BUILD_TESTS +#include <stdlib.h>  /**   * @ingroup DBusGLibInternals @@ -766,14 +767,48 @@ dbus_connection_register_gobject (DBusConnection        *connection,  dbus_bool_t  _dbus_gobject_test (const char *test_data_dir)  { -  static struct { const char *javacaps; const char *uscore; } name_pairs[] = { -    { "setFoo", "set_foo" }, -    { "foo", "foo" }, -    { "getFooBar", "get_foo_bar" }, -    { "Hello", "hello" }, -    { "frobateUIHandler", "frobate_ui_handler" } +  int i; +  static struct { const char *wincaps; const char *uscore; } name_pairs[] = { +    { "SetFoo", "set_foo" }, +    { "Foo", "foo" }, +    { "GetFooBar", "get_foo_bar" }, +    { "Hello", "hello" } +     +    /* Impossible-to-handle cases */ +    /* { "FrobateUIHandler", "frobate_ui_handler" } */    }; +  i = 0; +  while (i < (int) G_N_ELEMENTS (name_pairs)) +    { +      char *uscore; +      char *wincaps; + +      uscore = wincaps_to_uscore (name_pairs[i].wincaps); +      wincaps = uscore_to_wincaps (name_pairs[i].uscore); + +      if (strcmp (uscore, name_pairs[i].uscore) != 0) +        { +          g_printerr ("\"%s\" should have been converted to \"%s\" not \"%s\"\n", +                      name_pairs[i].wincaps, name_pairs[i].uscore, +                      uscore); +          exit (1); +        } +       +      if (strcmp (wincaps, name_pairs[i].wincaps) != 0) +        { +          g_printerr ("\"%s\" should have been converted to \"%s\" not \"%s\"\n", +                      name_pairs[i].uscore, name_pairs[i].wincaps, +                      wincaps); +          exit (1); +        } +       +      g_free (uscore); +      g_free (wincaps); + +      ++i; +    } +      return TRUE;  } diff --git a/test/Makefile.am b/test/Makefile.am index 04df3510..ab04496e 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,6 +1,13 @@ +if HAVE_GLIB +    GLIB_SUBDIR=glib +endif + +SUBDIRS=$(GLIB_SUBDIR) +  INCLUDES=-I$(top_srcdir) $(DBUS_TEST_CFLAGS)  +  if DBUS_BUILD_TESTS  TEST_BINARIES=test-service unbase64 break-loader spawn-test test-segfault test-exit test-sleep-forever  else diff --git a/test/glib/Makefile.am b/test/glib/Makefile.am new file mode 100644 index 00000000..9f900b13 --- /dev/null +++ b/test/glib/Makefile.am @@ -0,0 +1,44 @@ +INCLUDES=-I$(top_srcdir) $(DBUS_CLIENT_CFLAGS) $(DBUS_GLIB_CFLAGS) -I$(top_srcdir)/glib + +if DBUS_BUILD_TESTS + +if HAVE_GLIB_THREADS +THREAD_APPS=test-thread-server test-thread-client test-profile + +test_thread_server_SOURCES=				\ +	test-thread-server.c				\ +	test-thread.h + +test_thread_server_LDADD= $(DBUS_GLIB_THREADS_LIBS) $(top_builddir)/glib/libdbus-glib-1.la  + +test_thread_client_SOURCES=				\ +	test-thread-client.c				\ +	test-thread.h + +test_thread_client_LDADD= $(DBUS_GLIB_THREADS_LIBS) $(top_builddir)/glib/libdbus-glib-1.la  +endif + +## we use noinst_PROGRAMS not check_PROGRAMS for TESTS so that we +## build even when not doing "make check" +noinst_PROGRAMS= test-dbus-glib $(THREAD_APPS) + +test_dbus_glib_SOURCES=				\ +	test-dbus-glib.c + +test_dbus_glib_LDADD= $(top_builddir)/glib/libdbus-glib-1.la + +else +### not building tests + +if HAVE_GLIB_THREADS +noinst_PROGRAMS=test-profile +endif + +endif + +if HAVE_GLIB_THREADS +test_profile_SOURCES=				\ +	test-profile.c + +test_profile_LDADD= $(DBUS_GLIB_THREADS_LIBS) $(top_builddir)/glib/libdbus-glib-1.la  +endif
\ No newline at end of file diff --git a/glib/test-dbus-glib.c b/test/glib/test-dbus-glib.c index beda0a7a..beda0a7a 100644 --- a/glib/test-dbus-glib.c +++ b/test/glib/test-dbus-glib.c diff --git a/glib/test-profile.c b/test/glib/test-profile.c index 6d9d8e7f..6d9d8e7f 100644 --- a/glib/test-profile.c +++ b/test/glib/test-profile.c diff --git a/glib/test-thread-client.c b/test/glib/test-thread-client.c index d51d4e6a..d51d4e6a 100644 --- a/glib/test-thread-client.c +++ b/test/glib/test-thread-client.c diff --git a/glib/test-thread-server.c b/test/glib/test-thread-server.c index 8898ca7f..8898ca7f 100644 --- a/glib/test-thread-server.c +++ b/test/glib/test-thread-server.c diff --git a/glib/test-thread.h b/test/glib/test-thread.h index 8c78fba2..8c78fba2 100644 --- a/glib/test-thread.h +++ b/test/glib/test-thread.h  | 
