Re: bonobo-activation reference leak ...



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]