diff options
author | mcorino <mcorino@users.noreply.github.com> | 2006-11-08 13:24:37 +0000 |
---|---|---|
committer | mcorino <mcorino@users.noreply.github.com> | 2006-11-08 13:24:37 +0000 |
commit | aa10c2e42b5e96e9a0e638cb4424b587fed38d8b (patch) | |
tree | fc1f2d91025710eee8b0fe631aede73a9346d1c9 | |
parent | 1e40b7de63bd62890b60410c0b3c000353553b7b (diff) | |
download | ATCD-aa10c2e42b5e96e9a0e638cb4424b587fed38d8b.tar.gz |
ChangeLogTag: Wed Nov 8 13:22:12 UTC 2006 Martin Corino <mcorino@remedy.nl>
-rw-r--r-- | TAO/ChangeLog | 10 | ||||
-rw-r--r-- | TAO/tests/Muxing/Receiver.cpp | 10 | ||||
-rw-r--r-- | TAO/tests/Muxing/Receiver.h | 8 | ||||
-rw-r--r-- | TAO/tests/Muxing/Test.idl | 3 | ||||
-rw-r--r-- | TAO/tests/Muxing/client.cpp | 51 | ||||
-rwxr-xr-x | TAO/tests/Muxing/run_test.pl | 9 | ||||
-rw-r--r-- | TAO/tests/Muxing/server.cpp | 2 |
7 files changed, 68 insertions, 25 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 10d4eee2b6e..de85dbd9da0 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,13 @@ +Wed Nov 8 13:22:12 UTC 2006 Martin Corino <mcorino@remedy.nl> + + * tests/Muxing/Test.idl: + * tests/Muxing/Receiver{.h .cpp}: + * tests/Muxing/server.cpp: + * tests/Muxing/client.cpp: + * tests/Muxing/run_test.pl: + + Added clean shutdown option. + Wed Nov 8 13:14:12 UTC 2006 Martin Corino <mcorino@remedy.nl> * tests/Bug_2654_Regression/Hello.cpp: diff --git a/TAO/tests/Muxing/Receiver.cpp b/TAO/tests/Muxing/Receiver.cpp index 6ffff418f91..d1cd37643c1 100644 --- a/TAO/tests/Muxing/Receiver.cpp +++ b/TAO/tests/Muxing/Receiver.cpp @@ -5,9 +5,10 @@ ACE_RCSID(Muxing, Receiver, "$Id$") -Receiver::Receiver (void) +Receiver::Receiver (CORBA::ORB_ptr orb) : message_count_ (0) , byte_count_ (0) + , orb_ (CORBA::ORB::_duplicate (orb)) { } @@ -39,3 +40,10 @@ Receiver::get_event_count (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, 0); return this->message_count_; } + +void +Receiver::shutdown (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->orb_->shutdown (0 ACE_ENV_ARG_PARAMETER); +} diff --git a/TAO/tests/Muxing/Receiver.h b/TAO/tests/Muxing/Receiver.h index d8db9cc926b..c297521ed30 100644 --- a/TAO/tests/Muxing/Receiver.h +++ b/TAO/tests/Muxing/Receiver.h @@ -22,7 +22,7 @@ class Receiver { public: /// Constructor - Receiver (void); + Receiver (CORBA::ORB_ptr orb); /// Print out the results void dump_results (void); @@ -34,10 +34,16 @@ public: virtual CORBA::Long get_event_count (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)); + virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + private: ACE_SYNCH_MUTEX mutex_; CORBA::ULong message_count_; CORBA::ULong byte_count_; + /// Use an ORB reference to shutdown + /// the application. + CORBA::ORB_var orb_; }; #if defined(_MSC_VER) diff --git a/TAO/tests/Muxing/Test.idl b/TAO/tests/Muxing/Test.idl index 6a3b8921c78..af7010bd6c0 100644 --- a/TAO/tests/Muxing/Test.idl +++ b/TAO/tests/Muxing/Test.idl @@ -12,5 +12,8 @@ module Test /// Return the number of messages received so far long get_event_count (); + + /// A method to shutdown the ORB + oneway void shutdown (); }; }; diff --git a/TAO/tests/Muxing/client.cpp b/TAO/tests/Muxing/client.cpp index 460d623719e..e149b323d49 100644 --- a/TAO/tests/Muxing/client.cpp +++ b/TAO/tests/Muxing/client.cpp @@ -6,11 +6,12 @@ ACE_RCSID(Muxing, client, "$Id$") const char *ior = "file://test.ior"; +bool shutdown_srv = false; int parse_args (int argc, char *argv[]) { - ACE_Get_Opt get_opts (argc, argv, "k:"); + ACE_Get_Opt get_opts (argc, argv, "k:x"); int c; while ((c = get_opts ()) != -1) @@ -19,11 +20,15 @@ parse_args (int argc, char *argv[]) case 'k': ior = get_opts.opt_arg (); break; + case 'x': + shutdown_srv = true; + break; case '?': default: ACE_ERROR_RETURN ((LM_ERROR, "usage: %s " - "-k <ior>" + "-k <ior> " + "[-x]" "\n", argv [0]), -1); @@ -60,28 +65,34 @@ main (int argc, char *argv[]) 1); } - - Client_Task client_task (receiver.in (), + if (shutdown_srv) + { + receiver->shutdown (); + } + else + { + + Client_Task client_task (receiver.in (), #if defined (ACE_OPENVMS) - 750, /* test takes much longer on OpenVMS */ + 750, /* test takes much longer on OpenVMS */ #else - 1000, + 1000, #endif - 32768, - ACE_Thread_Manager::instance ()); - - if (client_task.activate (THR_NEW_LWP | THR_JOINABLE, 4, 1) == -1) - { - ACE_ERROR ((LM_ERROR, "Error activating client task\n")); + 32768, + ACE_Thread_Manager::instance ()); + + if (client_task.activate (THR_NEW_LWP | THR_JOINABLE, 4, 1) == -1) + { + ACE_ERROR ((LM_ERROR, "Error activating client task\n")); + } + ACE_Thread_Manager::instance ()->wait (); + + CORBA::Long count = receiver->get_event_count (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, "(%P) - Receiver got %d messages\n", + count)); } - ACE_Thread_Manager::instance ()->wait (); - - CORBA::Long count = receiver->get_event_count (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - ACE_DEBUG ((LM_DEBUG, "(%P) - Receiver got %d messages\n", - count)); - orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; } diff --git a/TAO/tests/Muxing/run_test.pl b/TAO/tests/Muxing/run_test.pl index fc7be2d21e1..4dd9dbdc537 100755 --- a/TAO/tests/Muxing/run_test.pl +++ b/TAO/tests/Muxing/run_test.pl @@ -23,7 +23,7 @@ $CL2 = new PerlACE::Process ("client", " -k file://$iorfile"); $SV->Spawn (); -if (PerlACE::waitforfile_timed ($iorfile, 15) == -1) { +if (PerlACE::waitforfile_timed ($iorfile, $PerlACE::wait_interval_for_process_creation) == -1) { print STDERR "ERROR: cannot find file <$iorfile>\n"; $SV->Kill (); $SV->TimedWait (1); exit 1; @@ -51,7 +51,12 @@ if ($client2 != 0) { $status = 1; } -$server = $SV->TerminateWaitKill (5); +# shutdown +$CLx = new PerlACE::Process ("client", " -k file://$iorfile -x"); +$CLx->Spawn (60); +$CLx->WaitKill (15); + +$server = $SV->WaitKill (15); if ($server != 0) { print STDERR "ERROR: server returned $server\n"; diff --git a/TAO/tests/Muxing/server.cpp b/TAO/tests/Muxing/server.cpp index 06a120b2183..ad2a9a98241 100644 --- a/TAO/tests/Muxing/server.cpp +++ b/TAO/tests/Muxing/server.cpp @@ -64,7 +64,7 @@ main (int argc, char *argv[]) Receiver *receiver_impl; ACE_NEW_RETURN (receiver_impl, - Receiver, + Receiver (orb.in ()), 1); PortableServer::ServantBase_var receiver_owner_transfer(receiver_impl); |