diff options
Diffstat (limited to 'TAO/tests/Single_Read')
-rwxr-xr-x | TAO/tests/Single_Read/run_test.pl | 7 | ||||
-rw-r--r-- | TAO/tests/Single_Read/test_i.cpp | 26 | ||||
-rw-r--r-- | TAO/tests/Single_Read/test_i.h | 2 |
3 files changed, 30 insertions, 5 deletions
diff --git a/TAO/tests/Single_Read/run_test.pl b/TAO/tests/Single_Read/run_test.pl index e4837b75540..bf809ac2f61 100755 --- a/TAO/tests/Single_Read/run_test.pl +++ b/TAO/tests/Single_Read/run_test.pl @@ -9,8 +9,10 @@ use lib "$ENV{ACE_ROOT}/bin"; use PerlACE::Run_Test; $iorfile = PerlACE::LocalFile ("server.ior"); +$client_done_file = PerlACE::LocalFile ("client_done"); unlink $iorfile; +unlink $client_done_file; $status = 0; if (PerlACE::is_vxworks_test()) { @@ -39,6 +41,10 @@ if ($client != 0) { $status = 1; } +open (FILE , ">$client_done_file"); +print FILE "Client Done !\n"; +close (FILE); + $server = $SV->WaitKill (400); if ($server != 0) { @@ -48,5 +54,6 @@ if ($server != 0) { } unlink $iorfile; +unlink $client_done_file; exit $status; diff --git a/TAO/tests/Single_Read/test_i.cpp b/TAO/tests/Single_Read/test_i.cpp index 0d1ad577560..2e055159cf6 100644 --- a/TAO/tests/Single_Read/test_i.cpp +++ b/TAO/tests/Single_Read/test_i.cpp @@ -6,7 +6,8 @@ ACE_RCSID(Single_Read, test_i, "$Id$") test_i::test_i (CORBA::ORB_ptr orb) - : orb_ (CORBA::ORB::_duplicate (orb)) + : orb_ (CORBA::ORB::_duplicate (orb)), + client_done_ (false) { } @@ -18,11 +19,26 @@ test_i::method (CORBA::ULong request_number, ACE_TEXT ("server: Iteration %d @ %T\n"), request_number)); - // Time required to process this request. - ACE_Time_Value work_time (0, - 3000 * 1000); + if (!client_done_) + { + FILE *input_file = ACE_OS::fopen ("client_done", "r"); + if (input_file == 0) + { + // Time required to process this request. + ACE_Time_Value work_time (0, + 3000 * 1000); - ACE_OS::sleep (work_time); + ACE_OS::sleep (work_time); + } + else + { + // The client is long gone because the run_test.pl has created + // the file to let us know. There's no need to keep on with + // these pointless sleeps + client_done_ = true; + ACE_OS::fclose (input_file); + } + } } void diff --git a/TAO/tests/Single_Read/test_i.h b/TAO/tests/Single_Read/test_i.h index a6de2d05838..f923a31f3b6 100644 --- a/TAO/tests/Single_Read/test_i.h +++ b/TAO/tests/Single_Read/test_i.h @@ -37,6 +37,8 @@ private: /// The ORB. CORBA::ORB_var orb_; + CORBA::Boolean client_done_; + }; #endif /* TAO_SINGLE_READ_TEST_I_H*/ |