diff options
author | bala <balanatarajan@users.noreply.github.com> | 2004-02-06 21:59:51 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2004-02-06 21:59:51 +0000 |
commit | 6762c0670ec4581bad4994f355d38edc8e0c00f5 (patch) | |
tree | 674246809b97cc064a160e2be28b000f35f54091 | |
parent | 65113cbca8e74783d453301a770966370de02c46 (diff) | |
download | ATCD-6762c0670ec4581bad4994f355d38edc8e0c00f5.tar.gz |
ChangeLogTag:Fri Feb 6 16:16:41 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
-rw-r--r-- | TAO/ChangeLog | 19 | ||||
-rw-r--r-- | TAO/tests/Makefile | 1 | ||||
-rw-r--r-- | TAO/tests/Server_Port_Zero/Hello.cpp | 27 | ||||
-rw-r--r-- | TAO/tests/Server_Port_Zero/Hello.h | 45 | ||||
-rw-r--r-- | TAO/tests/Server_Port_Zero/Makefile | 486 | ||||
-rw-r--r-- | TAO/tests/Server_Port_Zero/README | 10 | ||||
-rw-r--r-- | TAO/tests/Server_Port_Zero/Server_Port_Zero.mpc | 11 | ||||
-rw-r--r-- | TAO/tests/Server_Port_Zero/Test.idl | 20 | ||||
-rwxr-xr-x | TAO/tests/Server_Port_Zero/run_test.pl | 34 | ||||
-rw-r--r-- | TAO/tests/Server_Port_Zero/server.cpp | 117 |
10 files changed, 770 insertions, 0 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 4fef8ac1222..934f4ba5878 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,22 @@ +Fri Feb 6 16:16:41 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> + + * tests/Makefile: + * tests/Server_Port_Zero/Hello.cpp: + * tests/Server_Port_Zero/Hello.h: + * tests/Server_Port_Zero/Makefile: + * tests/Server_Port_Zero/README: + * tests/Server_Port_Zero/Server_Port_Zero.mpc: + * tests/Server_Port_Zero/Test.idl: + * tests/Server_Port_Zero/run_test.pl: + * tests/Server_Port_Zero/server.cpp: + + New test for a bug that Craig Rpdrigues reported. This test just + tries starting up a CORBA server on TCP port 0. + + * tests/Makefile: + + Added the new test to the Makefile. + Fri Feb 6 14:59:45 2004 Jeff Parsons <j.parsons@vanderbilt.edu> * orbsvcs/orbsvcs/IFRService/ExtAbstactInterfaceDef_i.cpp: diff --git a/TAO/tests/Makefile b/TAO/tests/Makefile index e17feb88f38..2b7ace087d2 100644 --- a/TAO/tests/Makefile +++ b/TAO/tests/Makefile @@ -64,6 +64,7 @@ DIRS = CDR \ DSI_Gateway \ AMI \ AMI_Timeouts \ + Server_Port_Zero \ Timeout \ Timed_Buffered_Oneways \ Smart_Proxies \ diff --git a/TAO/tests/Server_Port_Zero/Hello.cpp b/TAO/tests/Server_Port_Zero/Hello.cpp new file mode 100644 index 00000000000..457b7da1064 --- /dev/null +++ b/TAO/tests/Server_Port_Zero/Hello.cpp @@ -0,0 +1,27 @@ +// +// $Id$ +// +#include "Hello.h" + +ACE_RCSID(Server_Port_Zero, + Hello, + "$Id$") + +Hello::Hello (CORBA::ORB_ptr orb) + : orb_ (CORBA::ORB::_duplicate (orb)) +{ +} + +char * +Hello::get_string (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + return CORBA::string_dup ("Hello there!"); +} + +void +Hello::shutdown (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->orb_->shutdown (0 ACE_ENV_ARG_PARAMETER); +} diff --git a/TAO/tests/Server_Port_Zero/Hello.h b/TAO/tests/Server_Port_Zero/Hello.h new file mode 100644 index 00000000000..9097ddddbb4 --- /dev/null +++ b/TAO/tests/Server_Port_Zero/Hello.h @@ -0,0 +1,45 @@ +// +// $Id$ +// + +#ifndef HELLO_H +#define HELLO_H +#include /**/ "ace/pre.h" + +#include "TestS.h" + +#if defined (_MSC_VER) +# if (_MSC_VER >= 1200) +# pragma warning(push) +# endif /* _MSC_VER >= 1200 */ +# pragma warning (disable:4250) +#endif /* _MSC_VER */ + +/// Implement the Test::Hello interface +class Hello + : public virtual POA_Test::Hello + , public virtual PortableServer::RefCountServantBase +{ +public: + /// Constructor + Hello (CORBA::ORB_ptr orb); + + // = The skeleton methods + virtual char * get_string (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + +private: + /// Use an ORB reference to conver strings to objects and shutdown + /// the application. + CORBA::ORB_var orb_; +}; + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma warning(pop) +#endif /* _MSC_VER */ + +#include /**/ "ace/post.h" +#endif /* HELLO_H */ diff --git a/TAO/tests/Server_Port_Zero/Makefile b/TAO/tests/Server_Port_Zero/Makefile new file mode 100644 index 00000000000..c3c53c0fdae --- /dev/null +++ b/TAO/tests/Server_Port_Zero/Makefile @@ -0,0 +1,486 @@ +#---------------------------------------------------------------------------- +# +# $Id$ +# +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# Local macros +#---------------------------------------------------------------------------- + +ifndef TAO_ROOT + TAO_ROOT = $(ACE_ROOT)/TAO +endif # ! TAO_ROOT + +IDL_FILES = Test +IDL_SRC = TestC.cpp TestS.cpp +BIN = server + +SRC = $(addsuffix .cpp, $(BIN) Hello) $(IDL_SRC) + +SERVER_OBJS = server.o Hello.o $(IDL_SRC:.cpp=.o) + +TAO_IDLFLAGS += -Ge 1 +#---------------------------------------------------------------------------- +# 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.local.GNU +include $(TAO_ROOT)/taoconfig.mk + +#---------------------------------------------------------------------------- +# Local targets +#---------------------------------------------------------------------------- + +.PRECIOUS: $(foreach ext, $(IDL_EXT), Test$(ext)) + +server: $(addprefix $(VDIR),$(SERVER_OBJS)) + $(LINK.cc) $(LDFLAGS) -o $@ $^ $(TAO_SRVR_LIBS) $(POSTLINK) + +realclean: clean + -$(RM) $(foreach ext, $(IDL_EXT), Test$(ext)) + +# DO NOT DELETE THIS LINE -- g++dep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. + + +.obj/server.o .obj/server.so .shobj/server.o .shobj/server.so: server.cpp Hello.h \ + $(ACE_ROOT)/ace/pre.h TestS.h TestC.h \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/config-all.h \ + $(ACE_ROOT)/ace/config.h \ + $(ACE_ROOT)/ace/$(ACE_PLATFORM_CONFIG) \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(ACE_ROOT)/ace/OS_main.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/os_include/os_limits.h \ + $(ACE_ROOT)/ace/os_include/os_unistd.h \ + $(ACE_ROOT)/ace/os_include/sys/os_types.h \ + $(ACE_ROOT)/ace/os_include/os_stddef.h \ + $(ACE_ROOT)/ace/os_include/os_inttypes.h \ + $(ACE_ROOT)/ace/os_include/os_stdint.h \ + $(ACE_ROOT)/ace/os_include/os_stdio.h \ + $(ACE_ROOT)/ace/os_include/os_stdarg.h \ + $(ACE_ROOT)/ace/os_include/os_float.h \ + $(ACE_ROOT)/ace/os_include/os_stdlib.h \ + $(ACE_ROOT)/ace/os_include/sys/os_wait.h \ + $(ACE_ROOT)/ace/os_include/os_signal.h \ + $(ACE_ROOT)/ace/os_include/os_time.h \ + $(ACE_ROOT)/ace/os_include/os_ucontext.h \ + $(ACE_ROOT)/ace/os_include/sys/os_resource.h \ + $(ACE_ROOT)/ace/os_include/sys/os_time.h \ + $(ACE_ROOT)/ace/Global_Macros.h \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/os_include/os_errno.h \ + $(ACE_ROOT)/ace/Synch_Traits.h \ + $(ACE_ROOT)/ace/Lock.h \ + $(ACE_ROOT)/ace/SStringfwd.h \ + $(ACE_ROOT)/ace/iosfwd.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(ACE_ROOT)/ace/Exception_Macros.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/Basic_Types.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Default_Constants.h \ + $(TAO_ROOT)/tao/objectid.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/IOP_IORC.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/default_environment.h \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Objref_VarOut_T.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/Objref_VarOut_T.cpp \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/CORBA_methods.h \ + $(TAO_ROOT)/tao/Pseudo_VarOut_T.h \ + $(TAO_ROOT)/tao/Pseudo_VarOut_T.cpp \ + $(TAO_ROOT)/tao/Pseudo_VarOut_T.inl \ + $(TAO_ROOT)/tao/Objref_VarOut_T.inl \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Array_VarOut_T.h \ + $(TAO_ROOT)/tao/Array_VarOut_T.cpp \ + $(TAO_ROOT)/tao/Array_VarOut_T.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_NS_stdlib.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/CDR.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/os_include/sys/os_mman.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(TAO_ROOT)/tao/Seq_Var_T.h \ + $(TAO_ROOT)/tao/Seq_Var_T.cpp \ + $(TAO_ROOT)/tao/Seq_Var_T.inl \ + $(TAO_ROOT)/tao/Seq_Out_T.h \ + $(TAO_ROOT)/tao/Seq_Out_T.cpp \ + $(TAO_ROOT)/tao/Seq_Out_T.inl \ + $(TAO_ROOT)/tao/VarOut_T.h \ + $(TAO_ROOT)/tao/VarOut_T.cpp \ + $(TAO_ROOT)/tao/VarOut_T.inl \ + $(TAO_ROOT)/tao/Policy_ForwardC.h \ + $(TAO_ROOT)/tao/Object_Argument_T.h \ + $(TAO_ROOT)/tao/Argument.h \ + $(TAO_ROOT)/tao/Object_Argument_T.cpp \ + $(TAO_ROOT)/tao/Dynamic_ParameterC.h \ + $(TAO_ROOT)/tao/ParameterMode.h \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Arg_Traits_T.h \ + $(TAO_ROOT)/tao/Object_Argument_T.inl \ + $(TAO_ROOT)/tao/OBV_Constants.h \ + $(ACE_ROOT)/ace/Thread_Mutex.h \ + $(ACE_ROOT)/ace/OS_NS_Thread.h \ + $(ACE_ROOT)/ace/os_include/os_pthread.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/os_include/sys/os_sem.h \ + $(ACE_ROOT)/ace/os_include/sys/os_ipc.h \ + $(ACE_ROOT)/ace/os_include/os_semaphore.h \ + $(ACE_ROOT)/ace/OS_NS_signal.h \ + $(ACE_ROOT)/ace/Object_Manager_Base.h \ + $(ACE_ROOT)/ace/Cleanup.h \ + $(ACE_ROOT)/ace/Guard_T.h \ + $(ACE_ROOT)/ace/Guard_T.cpp \ + $(ACE_ROOT)/ace/Guard_T.inl \ + $(ACE_ROOT)/ace/RW_Thread_Mutex.h \ + $(ACE_ROOT)/ace/RW_Mutex.h \ + $(TAO_ROOT)/tao/Collocation_Proxy_Broker.h \ + $(TAO_ROOT)/tao/Collocation_Strategy.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ + $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ + $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ + $(ACE_ROOT)/ace/Atomic_Op.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.cpp \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.i TestS_T.h \ + TestS_T.cpp TestS_T.i \ + $(ACE_ROOT)/ace/Get_Opt.h \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Node.h \ + $(ACE_ROOT)/ace/Node.cpp \ + $(ACE_ROOT)/ace/Array_Base.h \ + $(ACE_ROOT)/ace/Array_Base.cpp \ + $(ACE_ROOT)/ace/Array_Base.inl \ + $(ACE_ROOT)/ace/Unbounded_Set.h \ + $(ACE_ROOT)/ace/Unbounded_Set.cpp \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ + $(ACE_ROOT)/ace/Unbounded_Queue.h \ + $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/OS_NS_stdio.h \ + $(ACE_ROOT)/ace/os_include/os_fcntl.h \ + $(ACE_ROOT)/ace/os_include/sys/os_stat.h + +.obj/Hello.o .obj/Hello.so .shobj/Hello.o .shobj/Hello.so: Hello.cpp Hello.h \ + $(ACE_ROOT)/ace/pre.h TestS.h TestC.h \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/config-all.h \ + $(ACE_ROOT)/ace/config.h \ + $(ACE_ROOT)/ace/$(ACE_PLATFORM_CONFIG) \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(ACE_ROOT)/ace/OS_main.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/os_include/os_limits.h \ + $(ACE_ROOT)/ace/os_include/os_unistd.h \ + $(ACE_ROOT)/ace/os_include/sys/os_types.h \ + $(ACE_ROOT)/ace/os_include/os_stddef.h \ + $(ACE_ROOT)/ace/os_include/os_inttypes.h \ + $(ACE_ROOT)/ace/os_include/os_stdint.h \ + $(ACE_ROOT)/ace/os_include/os_stdio.h \ + $(ACE_ROOT)/ace/os_include/os_stdarg.h \ + $(ACE_ROOT)/ace/os_include/os_float.h \ + $(ACE_ROOT)/ace/os_include/os_stdlib.h \ + $(ACE_ROOT)/ace/os_include/sys/os_wait.h \ + $(ACE_ROOT)/ace/os_include/os_signal.h \ + $(ACE_ROOT)/ace/os_include/os_time.h \ + $(ACE_ROOT)/ace/os_include/os_ucontext.h \ + $(ACE_ROOT)/ace/os_include/sys/os_resource.h \ + $(ACE_ROOT)/ace/os_include/sys/os_time.h \ + $(ACE_ROOT)/ace/Global_Macros.h \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/os_include/os_errno.h \ + $(ACE_ROOT)/ace/Synch_Traits.h \ + $(ACE_ROOT)/ace/Lock.h \ + $(ACE_ROOT)/ace/SStringfwd.h \ + $(ACE_ROOT)/ace/iosfwd.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(ACE_ROOT)/ace/Exception_Macros.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/Basic_Types.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Default_Constants.h \ + $(TAO_ROOT)/tao/objectid.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/IOP_IORC.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/default_environment.h \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Objref_VarOut_T.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/Objref_VarOut_T.cpp \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/CORBA_methods.h \ + $(TAO_ROOT)/tao/Pseudo_VarOut_T.h \ + $(TAO_ROOT)/tao/Pseudo_VarOut_T.cpp \ + $(TAO_ROOT)/tao/Pseudo_VarOut_T.inl \ + $(TAO_ROOT)/tao/Objref_VarOut_T.inl \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Array_VarOut_T.h \ + $(TAO_ROOT)/tao/Array_VarOut_T.cpp \ + $(TAO_ROOT)/tao/Array_VarOut_T.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_NS_stdlib.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/CDR.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/os_include/sys/os_mman.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(TAO_ROOT)/tao/Seq_Var_T.h \ + $(TAO_ROOT)/tao/Seq_Var_T.cpp \ + $(TAO_ROOT)/tao/Seq_Var_T.inl \ + $(TAO_ROOT)/tao/Seq_Out_T.h \ + $(TAO_ROOT)/tao/Seq_Out_T.cpp \ + $(TAO_ROOT)/tao/Seq_Out_T.inl \ + $(TAO_ROOT)/tao/VarOut_T.h \ + $(TAO_ROOT)/tao/VarOut_T.cpp \ + $(TAO_ROOT)/tao/VarOut_T.inl \ + $(TAO_ROOT)/tao/Policy_ForwardC.h \ + $(TAO_ROOT)/tao/Object_Argument_T.h \ + $(TAO_ROOT)/tao/Argument.h \ + $(TAO_ROOT)/tao/Object_Argument_T.cpp \ + $(TAO_ROOT)/tao/Dynamic_ParameterC.h \ + $(TAO_ROOT)/tao/ParameterMode.h \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Arg_Traits_T.h \ + $(TAO_ROOT)/tao/Object_Argument_T.inl \ + $(TAO_ROOT)/tao/OBV_Constants.h \ + $(ACE_ROOT)/ace/Thread_Mutex.h \ + $(ACE_ROOT)/ace/OS_NS_Thread.h \ + $(ACE_ROOT)/ace/os_include/os_pthread.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/os_include/sys/os_sem.h \ + $(ACE_ROOT)/ace/os_include/sys/os_ipc.h \ + $(ACE_ROOT)/ace/os_include/os_semaphore.h \ + $(ACE_ROOT)/ace/OS_NS_signal.h \ + $(ACE_ROOT)/ace/Object_Manager_Base.h \ + $(ACE_ROOT)/ace/Cleanup.h \ + $(ACE_ROOT)/ace/Guard_T.h \ + $(ACE_ROOT)/ace/Guard_T.cpp \ + $(ACE_ROOT)/ace/Guard_T.inl \ + $(ACE_ROOT)/ace/RW_Thread_Mutex.h \ + $(ACE_ROOT)/ace/RW_Mutex.h \ + $(TAO_ROOT)/tao/Collocation_Proxy_Broker.h \ + $(TAO_ROOT)/tao/Collocation_Strategy.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ + $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ + $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ + $(ACE_ROOT)/ace/Atomic_Op.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.cpp \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.i TestS_T.h \ + TestS_T.cpp TestS_T.i + +.obj/TestC.o .obj/TestC.so .shobj/TestC.o .shobj/TestC.so: TestC.cpp TestC.h \ + $(TAO_ROOT)/tao/ORB.h \ + $(ACE_ROOT)/ace/pre.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/config-all.h \ + $(ACE_ROOT)/ace/config.h \ + $(ACE_ROOT)/ace/$(ACE_PLATFORM_CONFIG) \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(ACE_ROOT)/ace/OS_main.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/os_include/os_limits.h \ + $(ACE_ROOT)/ace/os_include/os_unistd.h \ + $(ACE_ROOT)/ace/os_include/sys/os_types.h \ + $(ACE_ROOT)/ace/os_include/os_stddef.h \ + $(ACE_ROOT)/ace/os_include/os_inttypes.h \ + $(ACE_ROOT)/ace/os_include/os_stdint.h \ + $(ACE_ROOT)/ace/os_include/os_stdio.h \ + $(ACE_ROOT)/ace/os_include/os_stdarg.h \ + $(ACE_ROOT)/ace/os_include/os_float.h \ + $(ACE_ROOT)/ace/os_include/os_stdlib.h \ + $(ACE_ROOT)/ace/os_include/sys/os_wait.h \ + $(ACE_ROOT)/ace/os_include/os_signal.h \ + $(ACE_ROOT)/ace/os_include/os_time.h \ + $(ACE_ROOT)/ace/os_include/os_ucontext.h \ + $(ACE_ROOT)/ace/os_include/sys/os_resource.h \ + $(ACE_ROOT)/ace/os_include/sys/os_time.h \ + $(ACE_ROOT)/ace/Global_Macros.h \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/os_include/os_errno.h \ + $(ACE_ROOT)/ace/Synch_Traits.h \ + $(ACE_ROOT)/ace/Lock.h \ + $(ACE_ROOT)/ace/SStringfwd.h \ + $(ACE_ROOT)/ace/iosfwd.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(ACE_ROOT)/ace/Exception_Macros.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/Basic_Types.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Default_Constants.h \ + $(TAO_ROOT)/tao/objectid.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/IOP_IORC.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/default_environment.h \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Objref_VarOut_T.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/Objref_VarOut_T.cpp \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/CORBA_methods.h \ + $(TAO_ROOT)/tao/Pseudo_VarOut_T.h \ + $(TAO_ROOT)/tao/Pseudo_VarOut_T.cpp \ + $(TAO_ROOT)/tao/Pseudo_VarOut_T.inl \ + $(TAO_ROOT)/tao/Objref_VarOut_T.inl \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Array_VarOut_T.h \ + $(TAO_ROOT)/tao/Array_VarOut_T.cpp \ + $(TAO_ROOT)/tao/Array_VarOut_T.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_NS_stdlib.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/CDR.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/os_include/sys/os_mman.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(TAO_ROOT)/tao/Seq_Var_T.h \ + $(TAO_ROOT)/tao/Seq_Var_T.cpp \ + $(TAO_ROOT)/tao/Seq_Var_T.inl \ + $(TAO_ROOT)/tao/Seq_Out_T.h \ + $(TAO_ROOT)/tao/Seq_Out_T.cpp \ + $(TAO_ROOT)/tao/Seq_Out_T.inl \ + $(TAO_ROOT)/tao/VarOut_T.h \ + $(TAO_ROOT)/tao/VarOut_T.cpp \ + $(TAO_ROOT)/tao/VarOut_T.inl \ + $(TAO_ROOT)/tao/Policy_ForwardC.h \ + $(TAO_ROOT)/tao/Object_Argument_T.h \ + $(TAO_ROOT)/tao/Argument.h \ + $(TAO_ROOT)/tao/Object_Argument_T.cpp \ + $(TAO_ROOT)/tao/Dynamic_ParameterC.h \ + $(TAO_ROOT)/tao/ParameterMode.h \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Arg_Traits_T.h \ + $(TAO_ROOT)/tao/Object_Argument_T.inl \ + $(TAO_ROOT)/tao/OBV_Constants.h \ + $(ACE_ROOT)/ace/Thread_Mutex.h \ + $(ACE_ROOT)/ace/OS_NS_Thread.h \ + $(ACE_ROOT)/ace/os_include/os_pthread.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/os_include/sys/os_sem.h \ + $(ACE_ROOT)/ace/os_include/sys/os_ipc.h \ + $(ACE_ROOT)/ace/os_include/os_semaphore.h \ + $(ACE_ROOT)/ace/OS_NS_signal.h \ + $(ACE_ROOT)/ace/Object_Manager_Base.h \ + $(ACE_ROOT)/ace/Cleanup.h \ + $(ACE_ROOT)/ace/Guard_T.h \ + $(ACE_ROOT)/ace/Guard_T.cpp \ + $(ACE_ROOT)/ace/Guard_T.inl \ + $(ACE_ROOT)/ace/RW_Thread_Mutex.h \ + $(ACE_ROOT)/ace/RW_Mutex.h \ + $(TAO_ROOT)/tao/Exception_Data.h \ + $(TAO_ROOT)/tao/Invocation_Adapter.h \ + $(TAO_ROOT)/tao/Invocation_Utils.h \ + $(TAO_ROOT)/tao/Object_T.h \ + $(TAO_ROOT)/tao/Object_T.cpp \ + $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/MProfile.h \ + $(ACE_ROOT)/ace/Recursive_Thread_Mutex.h \ + $(TAO_ROOT)/tao/ORB_Core_Auto_Ptr.h \ + $(TAO_ROOT)/tao/Typecode.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Unbounded_Queue.h \ + $(ACE_ROOT)/ace/Node.h \ + $(ACE_ROOT)/ace/Node.cpp \ + $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ + $(TAO_ROOT)/tao/TC_Constants_Forward.h \ + $(TAO_ROOT)/tao/Any_Impl_T.h \ + $(TAO_ROOT)/tao/Any_Impl.h \ + $(TAO_ROOT)/tao/Any_Impl_T.cpp \ + $(TAO_ROOT)/tao/Marshal.h \ + $(ACE_ROOT)/ace/Auto_Ptr.h \ + $(ACE_ROOT)/ace/Auto_Ptr.cpp \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(TAO_ROOT)/tao/Any_Impl_T.inl \ + $(TAO_ROOT)/tao/Basic_Arguments.h \ + $(TAO_ROOT)/tao/Basic_Argument_T.h \ + $(TAO_ROOT)/tao/Basic_Argument_T.cpp \ + $(TAO_ROOT)/tao/Basic_Argument_T.inl \ + $(TAO_ROOT)/tao/UB_String_Arguments.h \ + $(TAO_ROOT)/tao/UB_String_Argument_T.h \ + $(TAO_ROOT)/tao/UB_String_Argument_T.cpp \ + $(TAO_ROOT)/tao/UB_String_Argument_T.inl \ + $(ACE_ROOT)/ace/OS_NS_string.h TestC.i + +# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Server_Port_Zero/README b/TAO/tests/Server_Port_Zero/README new file mode 100644 index 00000000000..b6a82e48d5c --- /dev/null +++ b/TAO/tests/Server_Port_Zero/README @@ -0,0 +1,10 @@ +/** + +@page Server_Port_Zero Test README File + + A very simple test that checks whether the server can be +started on port 0 using IIOP. Port 0 is reserved by TCP/IP and on +specification of that port the OS should reserve a port +automatically. This feature was broken sometime back. This test is to +ensure that the bug doesn't show up again. +*/ diff --git a/TAO/tests/Server_Port_Zero/Server_Port_Zero.mpc b/TAO/tests/Server_Port_Zero/Server_Port_Zero.mpc new file mode 100644 index 00000000000..f6fd383d73c --- /dev/null +++ b/TAO/tests/Server_Port_Zero/Server_Port_Zero.mpc @@ -0,0 +1,11 @@ +// -*- MPC -*- +// $Id$ + +project(*Server): taoexe, portableserver { + Source_Files { + Hello.cpp + server.cpp + } +} + + diff --git a/TAO/tests/Server_Port_Zero/Test.idl b/TAO/tests/Server_Port_Zero/Test.idl new file mode 100644 index 00000000000..3c0976e106d --- /dev/null +++ b/TAO/tests/Server_Port_Zero/Test.idl @@ -0,0 +1,20 @@ +// +// $Id$ +// + +/// Put the interfaces in a module, to avoid global namespace pollution +module Test +{ + /// A very simple interface + interface Hello + { + /// Return a simple string + string get_string (); + + /// A method to shutdown the ORB + /** + * This method is used to simplify the test shutdown process + */ + oneway void shutdown (); + }; +}; diff --git a/TAO/tests/Server_Port_Zero/run_test.pl b/TAO/tests/Server_Port_Zero/run_test.pl new file mode 100755 index 00000000000..690e3e04452 --- /dev/null +++ b/TAO/tests/Server_Port_Zero/run_test.pl @@ -0,0 +1,34 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib '../../../bin'; +use PerlACE::Run_Test; + +$iorfile = PerlACE::LocalFile ("server.ior"); +unlink $iorfile; +$status = 0; + +$SV = new PerlACE::Process ("server", "-o $iorfile"); + +$SV->Spawn (); + +if (PerlACE::waitforfile_timed ($iorfile, 5) == -1) { + print STDERR "ERROR: cannot find file <$iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} + +$server = $SV->WaitKill (10); + +if ($server != 0) { + print STDERR "ERROR: server returned $server\n"; + $status = 1; +} + +unlink $iorfile; + +exit $status; diff --git a/TAO/tests/Server_Port_Zero/server.cpp b/TAO/tests/Server_Port_Zero/server.cpp new file mode 100644 index 00000000000..4375a5c4b06 --- /dev/null +++ b/TAO/tests/Server_Port_Zero/server.cpp @@ -0,0 +1,117 @@ +// $Id$ + +#include "Hello.h" +#include "ace/Get_Opt.h" +#include "ace/OS_NS_stdio.h" + +ACE_RCSID (Server_Port_Zero, + server, + "$Id$") + +const char *ior_output_file = "test.ior"; + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "o:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'o': + ior_output_file = get_opts.opt_arg (); + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-o <iorfile>" + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +int +main (int argc, char *argv[]) +{ + ACE_TRY_NEW_ENV + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::Object_var poa_object = + orb->resolve_initial_references("RootPOA" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (poa_object.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (root_poa.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Panic: nil RootPOA\n"), + 1); + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return 1; + + Hello *hello_impl; + ACE_NEW_RETURN (hello_impl, + Hello (orb.in ()), + 1); + PortableServer::ServantBase_var owner_transfer(hello_impl); + + Test::Hello_var hello = + hello_impl->_this (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::String_var ior = + orb->object_to_string (hello.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Output the IOR to the <ior_output_file> + FILE *output_file= ACE_OS::fopen (ior_output_file, "w"); + if (output_file == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Cannot open output file for writing IOR: %s", + ior_output_file), + 1); + ACE_OS::fprintf (output_file, "%s", ior.in ()); + ACE_OS::fclose (output_file); + + poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_Time_Value tv (3, 0); + + orb->run (tv ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - event loop finished\n")); + + root_poa->destroy (1, 1 ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception caught:"); + return 1; + } + ACE_ENDTRY; + + return 0; +} |