summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2005-01-30 05:18:44 +0000
committerHavoc Pennington <hp@redhat.com>2005-01-30 05:18:44 +0000
commit41f52c96d651003b3d0a266a582d401228a8368e (patch)
tree3b217cef0c0b9db03aa580cb541b7d686732055a /test
parent2922b0e88ba00b0067c23633075629108ad8a496 (diff)
2005-01-30 Havoc Pennington <hp@redhat.com>
dbus-viewer introspected and displayed the bus driver * dbus/dbus-object-tree.c (object_tree_test_iteration): add tests for a handler registered on "/" * dbus/dbus-object-tree.c (_dbus_decompose_path): fix to handle path "/" properly (run_decompose_tests): add tests for path decomposition * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/" properly * glib/dbus-gobject.c (handle_introspect): fix quotes * test/glib/run-test.sh: support launching the bus, then running dbus-viewer * test/glib/test-service-glib.c (main): put in a trivial gobject subclass and register it on the connection * bus/driver.c (bus_driver_handle_introspect): implement introspection of the bus driver service * dbus/dbus-protocol.h: add #defines for the XML namespace, identifiers, doctype decl * bus/driver.c (bus_driver_handle_get_service_owner): handle attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by returning the service unchanged. (bus_driver_handle_message): remove old check for reply_serial in method calls, now the message type deals with that (bus_driver_handle_message): handle NULL interface * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function * glib/dbus-gloader-expat.c (description_load_from_string): allow -1 for len * tools/dbus-viewer.c: add support for introspecting a service on a bus * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add (dbus_g_pending_call_unref): add
Diffstat (limited to 'test')
-rwxr-xr-xtest/glib/run-test.sh9
-rw-r--r--test/glib/test-service-glib.c46
2 files changed, 55 insertions, 0 deletions
diff --git a/test/glib/run-test.sh b/test/glib/run-test.sh
index eddea5f8..0a5e3f65 100755
--- a/test/glib/run-test.sh
+++ b/test/glib/run-test.sh
@@ -57,12 +57,21 @@ echo "Started test bus pid $DBUS_SESSION_BUS_PID at $DBUS_SESSION_BUS_ADDRESS"
export DBUS_TEST_GLIB_RUN_TEST_SCRIPT=1
if test x$MODE = xprofile ; then
+ echo "profiling type $PROFILE_TYPE"
sleep 2 ## this lets the bus get started so its startup time doesn't affect the profile too much
if test x$PROFILE_TYPE = x ; then
PROFILE_TYPE=all
fi
libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/glib/test-profile $PROFILE_TYPE || die "test-profile failed"
+elif test x$MODE = xviewer ; then
+ echo "Launching dbus-viewer"
+ ARGS=
+ if test x$DEBUG = x ; then
+ ARGS="--services org.freedesktop.DBus"
+ fi
+ libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/tools/dbus-viewer $ARGS || die "could not run dbus-viewer"
else
+ echo "running test-dbus-glib"
libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/glib/test-dbus-glib || die "test-dbus-glib failed"
fi
diff --git a/test/glib/test-service-glib.c b/test/glib/test-service-glib.c
index cad6f168..9b1be0ad 100644
--- a/test/glib/test-service-glib.c
+++ b/test/glib/test-service-glib.c
@@ -4,6 +4,43 @@
#include <stdlib.h>
#include <string.h>
+typedef struct MyObject MyObject;
+typedef struct MyObjectClass MyObjectClass;
+
+GType my_object_get_type (void);
+
+struct MyObject
+{
+ GObject parent;
+};
+
+struct MyObjectClass
+{
+ GObjectClass parent;
+};
+
+#define MY_TYPE_OBJECT (my_object_get_type ())
+#define MY_OBJECT_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), MY_TYPE_OBJECT, MyObject))
+#define MY_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MY_TYPE_OBJECT, MyObjectClass))
+#define MY_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), MY_TYPE_OBJECT))
+#define MY_IS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MY_TYPE_OBJECT))
+#define MY_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MY_TYPE_OBJECT, MyObjectClass))
+
+G_DEFINE_TYPE(MyObject, my_object, G_TYPE_OBJECT)
+
+
+static void
+my_object_init (MyObject *obj)
+{
+
+}
+
+static void
+my_object_class_init (MyObjectClass *obj_class)
+{
+
+}
+
static GMainLoop *loop;
int
@@ -11,6 +48,7 @@ main (int argc, char **argv)
{
DBusGConnection *connection;
GError *error;
+ GObject *obj;
g_type_init ();
@@ -27,7 +65,15 @@ main (int argc, char **argv)
exit (1);
}
+ obj = g_object_new (MY_TYPE_OBJECT, NULL);
+
+ dbus_g_connection_register_g_object (connection,
+ "/org/freedesktop/my_test_object",
+ obj);
+ g_print ("GLib test service entering main loop\n");
+
+ g_main_loop_run (loop);
g_print ("Successfully completed %s\n", argv[0]);