diff options
Diffstat (limited to 'TAO')
-rw-r--r-- | TAO/ChangeLog | 10 | ||||
-rw-r--r-- | TAO/tests/Bug_2805_Regression/client.cpp | 24 | ||||
-rwxr-xr-x | TAO/tests/DIOP/run_test.pl | 5 |
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 (); |