summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
Diffstat (limited to 'TAO')
-rw-r--r--TAO/ChangeLog10
-rw-r--r--TAO/tests/Bug_2805_Regression/client.cpp24
-rwxr-xr-xTAO/tests/DIOP/run_test.pl5
3 files changed, 27 insertions, 12 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index eea3c48d446..47094ccac71 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,13 @@
+Tue Apr 24 07:50:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/DIOP/run_test.pl:
+ Improved for cross host testing
+
+ * tests/Bug_2805_Regression/client.cpp:
+ Added some more debug statements and made the reply count
+ an atomic op because it is updated by multiple threads and
+ could lead to invalid results
+
Mon Apr 23 14:16:00 UTC 2007 Simon Massey <sma@prismtech.com>
* tests/RTCORBA/Banded_Connections/server.cpp:
diff --git a/TAO/tests/Bug_2805_Regression/client.cpp b/TAO/tests/Bug_2805_Regression/client.cpp
index bd1d6952889..c142b0517db 100644
--- a/TAO/tests/Bug_2805_Regression/client.cpp
+++ b/TAO/tests/Bug_2805_Regression/client.cpp
@@ -16,6 +16,8 @@
#include "ace/Get_Opt.h"
#include "ace/Task.h"
+#include "ace/Atomic_Op.h"
+#include "ace/Synch_Traits.h"
#include "ami_test_i.h"
ACE_RCSID (AMI,
@@ -26,7 +28,7 @@ const char *ior = "file://test.ior";
int nthreads = 5;
int niterations = 5;
int debug = 0;
-int number_of_replies = 0;
+ACE_Atomic_Op<ACE_SYNCH_MUTEX, int> number_of_replies = 0;
CORBA::Long in_number = 931232;
const char * in_str = "Let's talk AMI.";
@@ -113,15 +115,17 @@ public:
parameter_corruption = 1;
}
+ int const reply = --number_of_replies;
+
if (debug)
{
ACE_DEBUG ((LM_DEBUG,
- "(%P | %t) : Callback method called: result <%d>, out_arg <%d>\n",
+ "(%P | %t) : Callback method %d called: result <%d>, out_arg <%d>\n",
+ (nthreads * niterations) - reply,
result,
out_l));
}
-
- --number_of_replies;
+ ACE_UNUSED_ARG (reply);
};
void foo_excep (::Messaging::ExceptionHolder * excep_holder)
@@ -224,6 +228,10 @@ main (int argc, char *argv[])
poa_manager->activate ();
+ // Main thread collects replies. It needs to collect
+ // <nthreads*niterations> replies.
+ number_of_replies = nthreads * niterations;
+
// Let the client perform the test in a separate thread
Client client (server.in (), niterations);
@@ -233,15 +241,11 @@ main (int argc, char *argv[])
"Cannot activate client threads\n"),
1);
- // Main thread collects replies. It needs to collect
- // <nthreads*niterations> replies.
- number_of_replies = nthreads *niterations;
-
if (debug)
{
ACE_DEBUG ((LM_DEBUG,
"(%P|%t) : Entering perform_work loop to receive <%d> replies\n",
- number_of_replies));
+ number_of_replies.value ()));
}
// ORB loop.
@@ -260,7 +264,7 @@ main (int argc, char *argv[])
{
ACE_DEBUG ((LM_DEBUG,
"(%P|%t) : Exited perform_work loop Received <%d> replies\n",
- (nthreads*niterations) - number_of_replies));
+ (nthreads*niterations) - number_of_replies.value ()));
}
client.thr_mgr ()->wait ();
diff --git a/TAO/tests/DIOP/run_test.pl b/TAO/tests/DIOP/run_test.pl
index 58b0503b905..d9dfdc6b59d 100755
--- a/TAO/tests/DIOP/run_test.pl
+++ b/TAO/tests/DIOP/run_test.pl
@@ -16,12 +16,13 @@ $iorfile = PerlACE::LocalFile ($iorbase);
if (PerlACE::is_vxworks_test()) {
$TARGETHOSTNAME = $ENV{'ACE_RUN_VX_TGTHOST'};
- $SV = new PerlACE::ProcessVX ("server", "-ORBEndpoint diop://$TARGETHOSTNAME:88888 -o $iorbase -ORBdebuglevel $ORBdebuglevel");
+ $SV = new PerlACE::ProcessVX ("server", "-ORBEndpoint diop://$TARGETHOSTNAME:88888 -o $iorbase -ORBdebuglevel $ORBdebuglevel -ORBDottedDecimalAddresses 1");
+ $CL = new PerlACE::Process ("client", "-k file://$iorfile -t 10 -i 10 -ORBdebuglevel $ORBdebuglevel -ORBDottedDecimalAddresses 1");
}
else {
$SV = new PerlACE::Process ("server", "-ORBEndpoint diop://:88888 -o $iorfile -ORBdebuglevel $ORBdebuglevel");
+ $CL = new PerlACE::Process ("client", "-k file://$iorfile -t 10 -i 10 -ORBdebuglevel $ORBdebuglevel");
}
-$CL = new PerlACE::Process ("client", "-k file://$iorfile -t 10 -i 10 -ORBdebuglevel $ORBdebuglevel");
$SV->Spawn ();