Re: bonobo-activation reference leak ...
- From: Mark McLoughlin <mark skynet ie>
- To: Maciej Stachowiak <mjs noisehavoc org>
- Cc: <gnome-components-list gnome org>
- Subject: Re: bonobo-activation reference leak ...
- Date: Thu, 25 Oct 2001 11:04:42 +0100 (IST)
On Thu, 25 Oct 2001, Maciej Stachowiak wrote:
> On 25Oct2001 10:10AM (+0100), Mark McLoughlin wrote:
> > Hi Maciej,
> >
> > On Thu, 25 Oct 2001, Maciej Stachowiak wrote:
> >
> > > As an aside, it might be nice to add an shlib test to the
> > > bonobo-activation test suite sometime.
> >
> > AFAIR, I worte one when I proposed a change to the shlib stuff
> > a few months back - I'll see if I can dig it up ...
> >
>
> Goodie, I'd love to have one in the test suite if it can work as an
> automated test.
Okay, I've attached it. Does it look okay to you?
Cheers,
Mark.
diff -urpN bonobo-activation.old/ChangeLog bonobo-activation/ChangeLog
--- bonobo-activation.old/ChangeLog Thu Oct 25 11:54:14 2001
+++ bonobo-activation/ChangeLog Thu Oct 25 12:00:20 2001
@@ -1,3 +1,13 @@
+2001-10-25 Mark McLoughlin <mark skynet ie>
+
+ * test/.cvsignore, test/Makefile.am,
+ test/bonobo-activation-test.c: (test_plugin): impl plugin test.
+ (main): use.
+
+ * test/plugin.server, test/plugin.idl,
+ test/bonobo-activation-testplugin.c: new files for
+ plugin test.
+
2001-10-26 Michael Meeks <michael ximian com>
* bonobo-activation/bonobo-activation-shlib.c
diff -urpN bonobo-activation.old/test/.cvsignore bonobo-activation/test/.cvsignore
--- bonobo-activation.old/test/.cvsignore Thu Oct 25 11:54:14 2001
+++ bonobo-activation/test/.cvsignore Thu Oct 25 12:00:20 2001
@@ -7,6 +7,11 @@ empty-skels.c
empty-stubs.c
empty.h
empty_built
+plugin-common.c
+plugin-skels.c
+plugin-stubs.c
+plugin.h
+plugin_built
bonobo-activation-empty-server
bonobo-activation-test-async
bonobo-activation-run-query
diff -urpN bonobo-activation.old/test/Makefile.am bonobo-activation/test/Makefile.am
--- bonobo-activation.old/test/Makefile.am Thu Oct 25 11:54:14 2001
+++ bonobo-activation/test/Makefile.am Thu Oct 25 12:00:20 2001
@@ -5,6 +5,10 @@ noinst_PROGRAMS= \
bonobo-activation-test-async \
$(NULL)
+noinst_LTLIBRARIES= \
+ libtest-plugin.la \
+ $(NULL)
+
bin_PROGRAMS= \
bonobo-activation-empty-server \
bonobo-activation-run-query \
@@ -19,6 +23,22 @@ bonobo_activation_test_SOURCES= \
empty-common.c \
empty.h \
empty-stubs.c \
+ plugin-common.c \
+ plugin.h \
+ plugin-stubs.c \
+ $(NULL)
+
+# Horrible, digusting and atrocious hack to
+# get libtool to build a noinst shared lib.
+libtest_plugin_la_LDFLAGS= \
+ -rpath $(shell (cd $(top_builddir);pwd))/test/.libs \
+ $(NULL)
+
+libtest_plugin_la_SOURCES= \
+ plugin.h \
+ plugin-common.c \
+ plugin-skels.c \
+ bonobo-activation-testplugin.c \
$(NULL)
bonobo_activation_run_query_SOURCES= \
@@ -43,23 +63,28 @@ BUILT_SOURCES= \
$(NULL)
empty.h empty-common.c empty-stubs.c empty-skels.c: empty_built
+plugin.h plugin-common.c plugin-stubs.c plugin-skels.c: plugin_built
empty_built: empty.idl $(ORBIT_IDL)
$(ORBIT_IDL) $(srcdir)/empty.idl
touch empty_built
-CLEANFILES=empty_built
+plugin_built: plugin.idl $(ORBIT_IDL)
+ $(ORBIT_IDL) $(srcdir)/plugin.idl
+ touch plugin_built
+
+CLEANFILES=empty_built plugin_built
INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(UTILS_CFLAGS)
LDADD=../bonobo-activation/libbonobo-activation.la $(UTILS_LIBS)
-serverfiles=empty.server broken.server
+serverfiles=empty.server broken.server plugin.server
emptydatadir=$(libdir)/bonobo/servers
emptydata_DATA=$(serverfiles)
-EXTRA_DIST=empty.idl $(serverfiles)
+EXTRA_DIST=empty.idl plugin.idl $(serverfiles)
check:
- BONOBO_ACTIVATION_PATH="$(top_srcdir)/test:$$BONOBO_ACTIVATION_PATH" PATH="$(top_builddir)/test:$$PATH" $(top_builddir)/test/bonobo-activation-test
+ BONOBO_ACTIVATION_PATH="$(top_srcdir)/test:$$BONOBO_ACTIVATION_PATH" PATH="$(top_builddir)/test:$$PATH" LD_LIBRARY_PATH="$(top_builddir)/test/.libs:$$LD_LIBRARY_PATH" $(top_builddir)/test/bonobo-activation-test
diff -urpN bonobo-activation.old/test/bonobo-activation-test.c bonobo-activation/test/bonobo-activation-test.c
--- bonobo-activation.old/test/bonobo-activation-test.c Thu Oct 25 11:54:14 2001
+++ bonobo-activation/test/bonobo-activation-test.c Thu Oct 25 12:00:20 2001
@@ -6,8 +6,9 @@
#include <bonobo-activation/bonobo-activation.h>
#include "empty.h"
+#include "plugin.h"
-#define TOTAL_TEST_SCORE 13
+#define TOTAL_TEST_SCORE 14
CORBA_Object name_service = CORBA_OBJECT_NIL;
@@ -74,6 +75,21 @@ test_object (CORBA_Object obj, CORBA_Env
}
static int
+test_plugin (CORBA_Object obj, CORBA_Environment *ev, const char *type)
+{
+ Plugin_doPluginTest (obj, ev);
+
+ if (ev->_major != CORBA_NO_EXCEPTION) {
+ g_warning ("Call failed: %s\n",
+ bonobo_activation_exception_id (ev));
+ return 0;
+ } else {
+ fprintf (stderr, "Test %s succeeded\n", type);
+ return 1;
+ }
+}
+
+static int
test_empty (CORBA_Object obj, CORBA_Environment *ev, const char *type)
{
Empty_doNothing (obj, ev);
@@ -118,6 +134,10 @@ main (int argc, char *argv[])
passed += test_empty (obj, &ev, "from aid");
}
+ obj = bonobo_activation_activate_from_id ("OAFAID:[OAFIID:Plugin:20010713]", 0, NULL, &ev);
+ if (test_object (obj, &ev, "from aid")) {
+ passed += test_plugin (obj, &ev, "from aid");
+ }
fprintf (stderr, "Broken link test ");
obj = bonobo_activation_activate_from_id ("OAFIID:Bogus:20000526", 0, NULL, &ev);
diff -urpN bonobo-activation.old/test/bonobo-activation-testplugin.c bonobo-activation/test/bonobo-activation-testplugin.c
--- bonobo-activation.old/test/bonobo-activation-testplugin.c Thu Jan 1 01:00:00 1970
+++ bonobo-activation/test/bonobo-activation-testplugin.c Thu Oct 25 11:56:57 2001
@@ -0,0 +1,64 @@
+#include <bonobo-activation/bonobo-activation.h>
+
+#include "plugin.h"
+
+static gpointer bonobo_activation_plugin_impl_ptr = NULL;
+
+static void
+plugin_test_impl (PortableServer_Servant servant,
+ CORBA_Environment *ev)
+{
+ bonobo_activation_plugin_unuse (bonobo_activation_plugin_impl_ptr);
+}
+
+static PortableServer_ServantBase__epv base_epv = {
+ NULL,
+ NULL,
+ NULL
+};
+
+static POA_Plugin__epv plugin_epv = {
+ NULL,
+ plugin_test_impl
+};
+
+static POA_Plugin__vepv plugin_vepv = {
+ &base_epv,
+ &plugin_epv
+};
+
+static POA_Plugin plugin_servant = {
+ NULL,
+ &plugin_vepv
+};
+
+static CORBA_Object
+activate_plugin (PortableServer_POA poa,
+ const char *iid,
+ gpointer impl_ptr,
+ CORBA_Environment *ev)
+{
+ CORBA_Object objref;
+
+ POA_Plugin__init (&plugin_servant, ev);
+
+ bonobo_activation_plugin_use (&plugin_servant, impl_ptr);
+
+ bonobo_activation_plugin_impl_ptr = impl_ptr;
+
+ objref = PortableServer_POA_servant_to_reference (poa,
+ &plugin_servant,
+ ev);
+
+ return objref;
+}
+
+static BonoboActivationPluginObject plugin_list[] = {
+ {"OAFIID:Plugin:20010713", activate_plugin},
+ {NULL}
+};
+
+const BonoboActivationPlugin Bonobo_Plugin_info = {
+ plugin_list,
+ "Bonobo Activation Test Plugin"
+};
diff -urpN bonobo-activation.old/test/plugin.idl bonobo-activation/test/plugin.idl
--- bonobo-activation.old/test/plugin.idl Thu Jan 1 01:00:00 1970
+++ bonobo-activation/test/plugin.idl Thu Oct 25 11:56:57 2001
@@ -0,0 +1,4 @@
+
+interface Plugin {
+ void doPluginTest ();
+};
diff -urpN bonobo-activation.old/test/plugin.server bonobo-activation/test/plugin.server
--- bonobo-activation.old/test/plugin.server Thu Jan 1 01:00:00 1970
+++ bonobo-activation/test/plugin.server Thu Oct 25 11:56:57 2001
@@ -0,0 +1,14 @@
+<oaf_info>
+
+<oaf_server iid="OAFIID:Plugin:20010713"
+ type="shlib"
+ location="./.libs/libtest-plugin.so">
+
+<oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:Plugin:1.0"/>
+</oaf_attribute>
+
+</oaf_server>
+
+</oaf_info>
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]