summaryrefslogtreecommitdiff
path: root/TAO/tests/Single_Read
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tests/Single_Read')
-rwxr-xr-xTAO/tests/Single_Read/run_test.pl7
-rw-r--r--TAO/tests/Single_Read/test_i.cpp26
-rw-r--r--TAO/tests/Single_Read/test_i.h2
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*/