diff options
author | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-08-01 08:31:17 +0000 |
---|---|---|
committer | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-08-01 08:31:17 +0000 |
commit | 35926d466c6e34e4f0e1b2692e83ec395d3a572d (patch) | |
tree | cf01c4c6b07542b02c22f4d5f0069a47ce255392 | |
parent | 5a479973f109dda836985c28d90c3fd02d7c6769 (diff) | |
download | ATCD-35926d466c6e34e4f0e1b2692e83ec395d3a572d.tar.gz |
ChangeLogTag: Tue Aug 01 03:11:25 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 10 | ||||
-rw-r--r-- | TAO/tao/Object_Adapter.cpp | 25 | ||||
-rw-r--r-- | TAO/tao/Object_Adapter.h | 10 | ||||
-rw-r--r-- | TAO/tao/Object_Adapter.i | 11 | ||||
-rw-r--r-- | TAO/tao/POAManager.cpp | 2 | ||||
-rw-r--r-- | TAO/tests/Makefile | 1 | ||||
-rw-r--r-- | TAO/tests/ORB_destroy/Makefile | 344 | ||||
-rw-r--r-- | TAO/tests/ORB_destroy/ORB_destroy.cpp | 201 | ||||
-rw-r--r-- | TAO/tests/ORB_destroy/ORB_destroy.dsp | 99 | ||||
-rw-r--r-- | TAO/tests/ORB_destroy/ORB_destroy.dsw | 29 | ||||
-rw-r--r-- | TAO/tests/ORB_destroy/README | 1 | ||||
-rwxr-xr-x | TAO/tests/ORB_destroy/run_test.pl | 24 | ||||
-rw-r--r-- | TAO/tests/TAO_Tests.dsw | 24 | ||||
-rw-r--r-- | TAO/version_tests.dsw | 15 | ||||
-rwxr-xr-x | bin/auto_compile_win32.pl | 2 | ||||
-rw-r--r-- | bin/auto_run_tests.lst | 1 | ||||
-rw-r--r-- | bin/run_all_list.pm | 4 |
17 files changed, 755 insertions, 48 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index ddb9690d94d..11864ba2e84 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,3 +1,13 @@ +Tue Aug 01 03:11:25 2000 Irfan Pyarali <irfan@cs.wustl.edu> + + * tests/ORB_destroy: New test for funky poa and orb destruction. + + * tao/Object_Adapter.cpp (deactivate): Removed function since it + was not necessary anymore. + + * tao/POAManager.cpp (TAO_POA_Manager and ~TAO_POA_Manager): + Removed access to <poa_manager_set>. + Tue Aug 1 01:48:52 2000 Pradeep Gore <pradeep@cs.wustl.edu> * orbsvcs/orbsvcs/Notify/Notify_Event_Manager.{h,cpp}: diff --git a/TAO/tao/Object_Adapter.cpp b/TAO/tao/Object_Adapter.cpp index 56740805c3f..bad62d109da 100644 --- a/TAO/tao/Object_Adapter.cpp +++ b/TAO/tao/Object_Adapter.cpp @@ -217,31 +217,6 @@ TAO_Object_Adapter::create_lock (int enable_locking, return the_lock; } - -void -TAO_Object_Adapter::deactivate_i (CORBA::Boolean wait_for_completion, - CORBA::Environment &ACE_TRY_ENV) -{ - // If the ORB::shutdown operation is called, it makes a call on - // deactivate with a TRUE etherealize_objects parameter for each POA - // manager known in the process; the wait_for_completion parameter - // to deactivate will be the same as the similarly named parameter - // of ORB::shutdown. - - poa_manager_set::iterator end = this->poa_manager_set_.end (); - - for (poa_manager_set::iterator iterator = this->poa_manager_set_.begin (); - iterator != end; - ++iterator) - { - TAO_POA_Manager *poa_manager = *iterator; - poa_manager->deactivate_i (1, - wait_for_completion, - ACE_TRY_ENV); - ACE_CHECK; - } -} - void TAO_Object_Adapter::dispatch_servant (const TAO_ObjectKey &key, CORBA::ServerRequest &req, diff --git a/TAO/tao/Object_Adapter.h b/TAO/tao/Object_Adapter.h index dbe33564ea4..2f9e0f1737d 100644 --- a/TAO/tao/Object_Adapter.h +++ b/TAO/tao/Object_Adapter.h @@ -264,18 +264,8 @@ public: static CORBA::ULong transient_poa_name_size (void); - void deactivate (CORBA::Boolean wait_for_completion, - CORBA::Environment &ACE_TRY_ENV); - - typedef ACE_Unbounded_Set<TAO_POA_Manager *> poa_manager_set; - - poa_manager_set poa_manager_set_; - protected: - void deactivate_i (CORBA::Boolean wait_for_completion, - CORBA::Environment &ACE_TRY_ENV); - int locate_servant_i (const TAO_ObjectKey &key, CORBA_Environment &ACE_TRY_ENV); diff --git a/TAO/tao/Object_Adapter.i b/TAO/tao/Object_Adapter.i index 952c25ad506..2862b7d2d11 100644 --- a/TAO/tao/Object_Adapter.i +++ b/TAO/tao/Object_Adapter.i @@ -31,17 +31,6 @@ TAO_Object_Adapter::transient_poa_name_size () return TAO_Object_Adapter::transient_poa_name_size_; } -ACE_INLINE void -TAO_Object_Adapter::deactivate (CORBA::Boolean wait_for_completion, - CORBA::Environment &ACE_TRY_ENV) -{ - // Lock access for the duration of this transaction. - TAO_OBJECT_ADAPTER_GUARD; - - this->deactivate_i (wait_for_completion, - ACE_TRY_ENV); -} - ACE_INLINE int TAO_Object_Adapter::locate_servant (const TAO_ObjectKey &key, CORBA::Environment &ACE_TRY_ENV) diff --git a/TAO/tao/POAManager.cpp b/TAO/tao/POAManager.cpp index bc57280f7fe..f0930d1bbed 100644 --- a/TAO/tao/POAManager.cpp +++ b/TAO/tao/POAManager.cpp @@ -15,12 +15,10 @@ TAO_POA_Manager::TAO_POA_Manager (TAO_Object_Adapter &object_adapter) poa_collection_ (), object_adapter_ (object_adapter) { - this->object_adapter_.poa_manager_set_.insert (this); } TAO_POA_Manager::~TAO_POA_Manager (void) { - this->object_adapter_.poa_manager_set_.remove (this); } void diff --git a/TAO/tests/Makefile b/TAO/tests/Makefile index 89fac2d3184..ac568094b1a 100644 --- a/TAO/tests/Makefile +++ b/TAO/tests/Makefile @@ -23,6 +23,7 @@ DIRS = CDR \ IORManipulation \ Connection_Purging \ ORB_init \ + ORB_destroy \ Nested_Event_Loop \ Leader_Followers \ Object_Loader \ diff --git a/TAO/tests/ORB_destroy/Makefile b/TAO/tests/ORB_destroy/Makefile new file mode 100644 index 00000000000..0f43176f070 --- /dev/null +++ b/TAO/tests/ORB_destroy/Makefile @@ -0,0 +1,344 @@ +# +# $Id$ +# + +ifndef TAO_ROOT +TAO_ROOT = $(ACE_ROOT)/TAO +endif + +BIN = ORB_destroy + +LSRC = $(addsuffix .cpp,$(BIN)) + +CPPFLAGS += -I$(TAO_ROOT) + +LDLIBS = -lTAO +LDFLAGS += -L$(TAO_ROOT)/tao + +INSTALL = + +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- + +include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU +include $(ACE_ROOT)/include/makeinclude/macros.GNU +include $(TAO_ROOT)/rules.tao.GNU +include $(ACE_ROOT)/include/makeinclude/rules.common.GNU +include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU +include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU + +#---------------------------------------------------------------------------- +# Dependencies +#---------------------------------------------------------------------------- + +# DO NOT DELETE THIS LINE -- g++dep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. + + +.obj/ORB_destroy.o .obj/ORB_destroy.so .shobj/ORB_destroy.o .shobj/ORB_destroy.so: ORB_destroy.cpp \ + $(TAO_ROOT)/tao/corba.h \ + $(ACE_ROOT)/ace/pre.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/svc_export.h \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Based_Pointer_T.h \ + $(ACE_ROOT)/ace/Based_Pointer_T.i \ + $(ACE_ROOT)/ace/Based_Pointer_T.cpp \ + $(ACE_ROOT)/ace/Based_Pointer_Repository.h \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/IOR_LookupTable.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/IORManipulation.h \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/LocalObject.i \ + $(TAO_ROOT)/tao/IORC.h \ + $(TAO_ROOT)/tao/IORC.i \ + $(TAO_ROOT)/tao/Interceptor.h \ + $(TAO_ROOT)/tao/InterceptorC.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/InterceptorC.i \ + $(TAO_ROOT)/tao/Interceptor.i \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/Request.h \ + $(TAO_ROOT)/tao/Context.h \ + $(TAO_ROOT)/tao/Context.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/PollableC.i \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/Request.i \ + $(TAO_ROOT)/tao/Server_Request.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/Server_Request.i \ + $(TAO_ROOT)/tao/POA.h \ + $(TAO_ROOT)/tao/Object_Adapter.h \ + $(TAO_ROOT)/tao/Key_Adapters.h \ + $(ACE_ROOT)/ace/Map.h \ + $(ACE_ROOT)/ace/Map_T.h \ + $(ACE_ROOT)/ace/Pair.h \ + $(ACE_ROOT)/ace/Pair_T.h \ + $(ACE_ROOT)/ace/Pair_T.i \ + $(ACE_ROOT)/ace/Pair_T.cpp \ + $(ACE_ROOT)/ace/Map_Manager.h \ + $(ACE_ROOT)/ace/Map_Manager.i \ + $(ACE_ROOT)/ace/Map_Manager.cpp \ + $(ACE_ROOT)/ace/Active_Map_Manager.h \ + $(ACE_ROOT)/ace/Active_Map_Manager.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Map_T.i \ + $(ACE_ROOT)/ace/Map_T.cpp \ + $(TAO_ROOT)/tao/PortableServerC.h \ + $(TAO_ROOT)/tao/PortableServerC.i \ + $(TAO_ROOT)/tao/Key_Adapters.i \ + $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ + $(TAO_ROOT)/tao/poa_macros.h \ + $(TAO_ROOT)/tao/Servant_Base.h \ + $(TAO_ROOT)/tao/Servant_Base.i \ + $(TAO_ROOT)/tao/Active_Object_Map.h \ + $(TAO_ROOT)/tao/Active_Object_Map.i \ + $(TAO_ROOT)/tao/RTCORBAC.h \ + $(TAO_ROOT)/tao/RTCORBAC.i \ + $(TAO_ROOT)/tao/Object_Adapter.i \ + $(TAO_ROOT)/tao/POAManager.h \ + $(TAO_ROOT)/tao/POAManager.i \ + $(TAO_ROOT)/tao/POA.i \ + $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/Pluggable.h \ + $(ACE_ROOT)/ace/Message_Queue.h \ + $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ + $(ACE_ROOT)/ace/Message_Queue_T.h \ + $(ACE_ROOT)/ace/Message_Queue_T.i \ + $(ACE_ROOT)/ace/Message_Queue_T.cpp \ + $(ACE_ROOT)/ace/Strategies.h \ + $(ACE_ROOT)/ace/Strategies_T.h \ + $(ACE_ROOT)/ace/Synch_Options.h \ + $(ACE_ROOT)/ace/Synch_Options.i \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(ACE_ROOT)/ace/Strategies_T.i \ + $(ACE_ROOT)/ace/Strategies_T.cpp \ + $(ACE_ROOT)/ace/Service_Repository.h \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/Service_Types.i \ + $(ACE_ROOT)/ace/Service_Repository.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.h \ + $(ACE_ROOT)/ace/WFMO_Reactor.i \ + $(ACE_ROOT)/ace/Strategies.i \ + $(ACE_ROOT)/ace/Message_Queue.i \ + $(TAO_ROOT)/tao/Pluggable.i \ + $(TAO_ROOT)/tao/MProfile.h \ + $(TAO_ROOT)/tao/Profile.h \ + $(TAO_ROOT)/tao/Tagged_Components.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.i \ + $(TAO_ROOT)/tao/Tagged_Components.i \ + $(TAO_ROOT)/tao/Profile.i \ + $(TAO_ROOT)/tao/MProfile.i \ + $(TAO_ROOT)/tao/Stub.i \ + $(TAO_ROOT)/tao/params.h \ + $(TAO_ROOT)/tao/params.i \ + $(TAO_ROOT)/tao/ORB_Core.h \ + $(TAO_ROOT)/tao/Policy_Manager.h \ + $(TAO_ROOT)/tao/POA_CORBA.h \ + $(TAO_ROOT)/tao/DynAnyC.h \ + $(TAO_ROOT)/tao/DynAnyC.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/Policy_Manager.i \ + $(TAO_ROOT)/tao/Resource_Factory.h \ + $(TAO_ROOT)/tao/Protocol_Factory.h \ + $(TAO_ROOT)/tao/ORB_Core.i \ + $(ACE_ROOT)/ace/Dynamic_Service.h \ + $(ACE_ROOT)/ace/Dynamic_Service.cpp \ + $(TAO_ROOT)/tao/Operation_Table.h \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Invocation.h \ + $(TAO_ROOT)/tao/Synch_Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.i \ + $(TAO_ROOT)/tao/GIOP_Message_State.h \ + $(TAO_ROOT)/tao/Pluggable_Messaging.h \ + $(TAO_ROOT)/tao/Pluggable_Messaging_Utils.h \ + $(TAO_ROOT)/tao/Pluggable_Messaging_Utils.i \ + $(TAO_ROOT)/tao/Pluggable_Messaging.i \ + $(TAO_ROOT)/tao/GIOP_Message_State.i \ + $(TAO_ROOT)/tao/Synch_Reply_Dispatcher.i \ + $(TAO_ROOT)/tao/TAOC.h \ + $(TAO_ROOT)/tao/Priority_Mapping_Manager.h \ + $(TAO_ROOT)/tao/Priority_Mapping.h \ + $(TAO_ROOT)/tao/Priority_Mapping.i \ + $(TAO_ROOT)/tao/Priority_Mapping_Manager.i \ + $(TAO_ROOT)/tao/TAOC.i \ + $(TAO_ROOT)/tao/operation_details.h \ + $(TAO_ROOT)/tao/target_specification.h \ + $(TAO_ROOT)/tao/target_specification.i \ + $(TAO_ROOT)/tao/operation_details.i \ + $(TAO_ROOT)/tao/Invocation.i \ + $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \ + $(TAO_ROOT)/tao/DynAny_i.h \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/InterfaceC.h \ + $(TAO_ROOT)/tao/ifrfwd.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + $(TAO_ROOT)/tao/MessagingS.h \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/MessagingS_T.h \ + $(TAO_ROOT)/tao/MessagingS_T.i \ + $(TAO_ROOT)/tao/MessagingS_T.cpp \ + $(TAO_ROOT)/tao/MessagingS.i + +# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/ORB_destroy/ORB_destroy.cpp b/TAO/tests/ORB_destroy/ORB_destroy.cpp new file mode 100644 index 00000000000..fe1189f9103 --- /dev/null +++ b/TAO/tests/ORB_destroy/ORB_destroy.cpp @@ -0,0 +1,201 @@ +// $Id$ + +//======================================================================== +// +// = LIBRARY +// TAO/tests/ORB_destroy +// +// = FILENAME +// ORB_destroy.cpp +// +// = DESCRIPTION +// Simple ORB destruction test. +// +// = AUTHOR +// Irfan Pyarali +// +//========================================================================= + +#include "tao/corba.h" + +ACE_RCSID(ORB_destroy, ORB_destroy, "$Id$") + +int +test_with_regular_poa_manager (int argc, + char **argv, + const char *orb_name, + int destroy_orb, + int destroy_poa) +{ + ACE_DECLARE_NEW_CORBA_ENV; + + ACE_TRY + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, orb_name, ACE_TRY_ENV); + ACE_TRY_CHECK; + + CORBA::Object_var obj = + orb->resolve_initial_references ("RootPOA", + ACE_TRY_ENV); + ACE_TRY_CHECK; + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (obj.in (), ACE_TRY_ENV); + ACE_TRY_CHECK; + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (ACE_TRY_ENV); + ACE_TRY_CHECK; + + poa_manager->activate (ACE_TRY_ENV); + ACE_TRY_CHECK; + + if (destroy_poa) + { + root_poa->destroy (1, 1, ACE_TRY_ENV); + ACE_TRY_CHECK; + } + + if (destroy_orb) + { + orb->destroy (ACE_TRY_ENV); + ACE_TRY_CHECK; + } + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception raised"); + ACE_CHECK_RETURN (-1); + } + ACE_ENDTRY; + + return 0; +} + +int +test_with_funky_poa_manager (int argc, + char **argv, + const char *orb_name, + int destroy_orb, + int destroy_poa, + int funky_poa_manager) +{ + ACE_DECLARE_NEW_CORBA_ENV; + + ACE_TRY + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, orb_name, ACE_TRY_ENV); + ACE_TRY_CHECK; + + CORBA::Object_var obj = + orb->resolve_initial_references ("RootPOA", + ACE_TRY_ENV); + ACE_TRY_CHECK; + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (obj.in (), ACE_TRY_ENV); + ACE_TRY_CHECK; + + if (funky_poa_manager) + { + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (ACE_TRY_ENV); + ACE_TRY_CHECK; + + poa_manager->activate (ACE_TRY_ENV); + ACE_TRY_CHECK; + } + + if (destroy_poa) + { + root_poa->destroy (1, 1, ACE_TRY_ENV); + ACE_TRY_CHECK; + } + + if (destroy_orb) + { + orb->destroy (ACE_TRY_ENV); + ACE_TRY_CHECK; + } + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception raised"); + ACE_CHECK_RETURN (-1); + } + ACE_ENDTRY; + + return 0; +} + +int +main (int argc, char **argv) +{ + int result = 0; + + result = test_with_regular_poa_manager (argc, argv, + "destroy_nothing_with_poa_manager", + 0, 0); + ACE_ASSERT (result == 0); + + result = test_with_regular_poa_manager (argc, argv, + "destroy_poa_with_poa_manager", + 0, 1); + ACE_ASSERT (result == 0); + + result = test_with_regular_poa_manager (argc, argv, + "destroy_orb_with_poa_manager", + 1, 0); + ACE_ASSERT (result == 0); + + result = test_with_regular_poa_manager (argc, argv, + "destroy_poa_and_orb_with_poa_manager", + 1, 1); + ACE_ASSERT (result == 0); + + result = test_with_funky_poa_manager (argc, argv, + "destroy_nothing_without_poa_manager", + 0, 0, 0); + ACE_ASSERT (result == 0); + + result = test_with_funky_poa_manager (argc, argv, + "destroy_poa_without_poa_manager", + 0, 1, 0); + ACE_ASSERT (result == 0); + + result = test_with_funky_poa_manager (argc, argv, + "destroy_orb_without_poa_manager", + 1, 0, 0); + ACE_ASSERT (result == 0); + + result = test_with_funky_poa_manager (argc, argv, + "destroy_poa_and_orb_without_poa_manager", + 1, 1, 0); + ACE_ASSERT (result == 0); + + result = test_with_funky_poa_manager (argc, argv, + "destroy_nothing_with_funky_poa_manager", + 0, 0, 1); + ACE_ASSERT (result == 0); + + result = test_with_funky_poa_manager (argc, argv, + "destroy_poa_with_funky_poa_manager", + 0, 1, 1); + ACE_ASSERT (result == 0); + + result = test_with_funky_poa_manager (argc, argv, + "destroy_orb_with_funky_poa_manager", + 1, 0, 1); + ACE_ASSERT (result == 0); + + result = test_with_funky_poa_manager (argc, argv, + "destroy_poa_and_orb_with_funky_poa_manager", + 1, 1, 1); + ACE_ASSERT (result == 0); + + return 0; +} diff --git a/TAO/tests/ORB_destroy/ORB_destroy.dsp b/TAO/tests/ORB_destroy/ORB_destroy.dsp new file mode 100644 index 00000000000..5c284120a07 --- /dev/null +++ b/TAO/tests/ORB_destroy/ORB_destroy.dsp @@ -0,0 +1,99 @@ +# Microsoft Developer Studio Project File - Name="ORB_destroy" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=ORB_destroy - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "ORB_destroy.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "ORB_destroy.mak" CFG="ORB_destroy - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "ORB_destroy - Win32 Release" (based on\
+ "Win32 (x86) Console Application")
+!MESSAGE "ORB_destroy - Win32 Debug" (based on\
+ "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "ORB_destroy - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\.." /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 ace.lib tao.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+# SUBTRACT LINK32 /pdb:none
+
+!ELSEIF "$(CFG)" == "ORB_destroy - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\.." /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 TAOd.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+# SUBTRACT LINK32 /pdb:none
+
+!ENDIF
+
+# Begin Target
+
+# Name "ORB_destroy - Win32 Release"
+# Name "ORB_destroy - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\ORB_destroy.cpp
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/TAO/tests/ORB_destroy/ORB_destroy.dsw b/TAO/tests/ORB_destroy/ORB_destroy.dsw new file mode 100644 index 00000000000..9ec0fb31585 --- /dev/null +++ b/TAO/tests/ORB_destroy/ORB_destroy.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "ORB_destroy"=.\ORB_destroy.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/TAO/tests/ORB_destroy/README b/TAO/tests/ORB_destroy/README new file mode 100644 index 00000000000..3109f93ebf3 --- /dev/null +++ b/TAO/tests/ORB_destroy/README @@ -0,0 +1 @@ +Simple ORB destruction test.
\ No newline at end of file diff --git a/TAO/tests/ORB_destroy/run_test.pl b/TAO/tests/ORB_destroy/run_test.pl new file mode 100755 index 00000000000..9ae4b5d362e --- /dev/null +++ b/TAO/tests/ORB_destroy/run_test.pl @@ -0,0 +1,24 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +unshift @INC, '../../../../bin'; +require Process; +require ACEutils; + +$T = Process::Create ($EXEPREFIX."ORB_destroy".$EXE_EXT); + +$client = $T->TimedWait (60); +if ($client == -1) { + print STDERR "ERROR: test timedout\n"; + $T->Kill (); $T->TimedWait (1); +} + +if ($client == -1) { + exit 1; +} + +exit 0; diff --git a/TAO/tests/TAO_Tests.dsw b/TAO/tests/TAO_Tests.dsw index 11fe6b9669d..51fc1bc42b4 100644 --- a/TAO/tests/TAO_Tests.dsw +++ b/TAO/tests/TAO_Tests.dsw @@ -75,6 +75,30 @@ Package=<4> ###############################################################################
+Project: "ORB_init"=.\ORB_init\ORB_init.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "ORB_destroy"=.\ORB_destroy\ORB_destroy.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
Project: "MT_Client Client"=.\MT_Client\client.dsp - Package Owner=<4>
Package=<5>
diff --git a/TAO/version_tests.dsw b/TAO/version_tests.dsw index 54a12b4ecd7..ee84407398f 100644 --- a/TAO/version_tests.dsw +++ b/TAO/version_tests.dsw @@ -1920,6 +1920,21 @@ Package=<4> ###############################################################################
+Project: "ORB_destroy"=.\tests\ORB_destroy\ORB_destroy.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name TAO DLL
+ End Project Dependency
+}}}
+
+###############################################################################
+
Project: "POA Deactivation"=.\tests\POA\Deactivation\Deactivation.dsp - Package Owner=<4>
Package=<5>
diff --git a/bin/auto_compile_win32.pl b/bin/auto_compile_win32.pl index 60fbe93f23d..f9709a7a6fd 100755 --- a/bin/auto_compile_win32.pl +++ b/bin/auto_compile_win32.pl @@ -234,6 +234,7 @@ TAO/tests/POA/Identity/Identity.dsw, POA Identity: TAO/tests/IORManipulation/IORManipulation.dsw, IORTest: TAO/tests/Connection_Purging/Connection_Purging.dsw, POA Connection Purging: TAO/tests/ORB_init/ORB_init.dsw, ORB_init: +TAO/tests/ORB_destroy/ORB_destroy.dsw, ORB_destroy: TAO/tests/Nested_Event_Loop/Nested_Event_Loop.dsw, Nested_Event_Loop Server: TAO/tests/Nested_Event_Loop/Nested_Event_Loop.dsw, Nested_Event_Loop Client: TAO/tests/Leader_Followers/Leader_Followers.dsw, Leader_Followers Server: @@ -455,6 +456,7 @@ TAO/tests/POA/Identity/Identity.dsw, POA Identity: TAO/tests/IORManipulation/IORManipulation.dsw, IORTest: TAO/tests/Connection_Purging/Connection_Purging.dsw, POA Connection Purging: TAO/tests/ORB_init/ORB_init.dsw, ORB_init: +TAO/tests/ORB_destroy/ORB_destroy.dsw, ORB_destroy: TAO/tests/Nested_Event_Loop/Nested_Event_Loop.dsw, Nested_Event_Loop Server: TAO/tests/Nested_Event_Loop/Nested_Event_Loop.dsw, Nested_Event_Loop Client: TAO/tests/Leader_Followers/Leader_Followers.dsw, Leader_Followers Server: diff --git a/bin/auto_run_tests.lst b/bin/auto_run_tests.lst index a77f0adcc11..c4857984bec 100644 --- a/bin/auto_run_tests.lst +++ b/bin/auto_run_tests.lst @@ -38,6 +38,7 @@ TAO/tests/Timeout/run_test.pl: MINIMUM TAO/tests/Timed_Buffered_Oneways/run_test.pl: MINIMUM TAO/tests/IDL_Test/run_test.pl TAO/tests/ORB_init/run_test.pl +TAO/tests/ORB_destroy/run_test.pl TAO/tests/DSI_Gateway/run_test.pl: MINIMUM TAO/tests/DynAny_Test/run_test.pl: MINIMUM TAO/tests/Connection_Purging/run_test.pl: ST diff --git a/bin/run_all_list.pm b/bin/run_all_list.pm index 7d4108e5b49..e23c5f6bdb7 100644 --- a/bin/run_all_list.pm +++ b/bin/run_all_list.pm @@ -38,6 +38,7 @@ if ($^O eq "MSWin32") { 'TAO/tests/Timed_Buffered_Oneways , run_test.pl', 'TAO/tests/IDL_Test , run_test.pl', 'TAO/tests/ORB_init , run_test.pl', + 'TAO/tests/ORB_destroy , run_test.pl', 'TAO/tests/DSI_Gateway , run_test.pl', 'TAO/tests/DynAny_Test , run_test.pl', 'TAO/tests/Connection_Purging , run_test.pl', @@ -110,6 +111,7 @@ if ($^O eq "MSWin32") { # NOT MINIMUM 'TAO/tests/Timed_Buffered_Oneways , run_test.pl', 'TAO/tests/IDL_Test , run_test.pl', 'TAO/tests/ORB_init , run_test.pl', + 'TAO/tests/ORB_destroy , run_test.pl', # NOT MINIMUM 'TAO/tests/DSI_Gateway , run_test.pl', # NOT MINIMUM 'TAO/tests/DynAny_Test , run_test.pl', 'TAO/tests/Connection_Purging , run_test.pl', @@ -180,6 +182,7 @@ if ($^O eq "MSWin32") { 'TAO/tests/Timeout , run_test.pl', 'TAO/tests/Timed_Buffered_Oneways , run_test.pl', 'TAO/tests/ORB_init , run_test.pl', + 'TAO/tests/ORB_destroy , run_test.pl', 'TAO/tests/DSI_Gateway , run_test.pl', 'TAO/tests/DynAny_Test , run_test.pl', # NOT ST 'TAO/tests/Connection_Purging , run_test.pl', @@ -250,6 +253,7 @@ if ($^O eq "MSWin32") { 'TAO/tests/Timed_Buffered_Oneways , run_test.pl', 'TAO/tests/IDL_Test , run_test.pl', 'TAO/tests/ORB_init , run_test.pl', + 'TAO/tests/ORB_destroy , run_test.pl', 'TAO/tests/DSI_Gateway , run_test.pl', 'TAO/tests/AMI , run_test.pl', 'TAO/tests/InterOp-Naming , run_test.pl', |