summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Mesnier <mesnier_p@ociweb.com>2009-03-19 13:59:11 +0000
committerPhil Mesnier <mesnier_p@ociweb.com>2009-03-19 13:59:11 +0000
commita75ae25c02118f49ed9d947ae87022910552a587 (patch)
tree93c516f5cc41745481f1f25faa7f3fba8be8c61c
parent205c51d7258344a9e9482b3c537f61896c0a5b87 (diff)
downloadATCD-a75ae25c02118f49ed9d947ae87022910552a587.tar.gz
Thu Mar 19 13:49:23 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
* configure.ac: * orbsvcs/tests/Notify/Makefile.am: Add new build to the automake files. * orbsvcs/tests/Notify/Validate_Client/Makefile.am: * orbsvcs/tests/Notify/Validate_Client/README: * orbsvcs/tests/Notify/Validate_Client/Validate_Client.mpc: * orbsvcs/tests/Notify/Validate_Client/proxy_dummy.cpp: * orbsvcs/tests/Notify/Validate_Client/run_test.pl: Added a server that generates the persistence file for the notify service that is uses locally created references. This should ensure that the validator feature will actually get a OBJECT_NOT_EXIST exception rather than time out trying to resolve an unknown hostname. The problem with this test was the original source persistence file contained proxy references that were unresolvable, and so on some hosts, it took longer than the timeout period to fail to resolve, and this caused the validator to get a TIMEOUT exception and decide that the peer is still present, just busy. Thus the proxy would not be reaped, and the persistence file would end up with proxy references, causing the test to fail. * orbsvcs/tests/Notify/Validate_Client/persistency_copy: Removed this file, the source data file is generated now.
-rw-r--r--TAO/ChangeLog34
-rw-r--r--TAO/configure.ac1
-rw-r--r--TAO/orbsvcs/tests/Notify/Makefile.am3
-rw-r--r--TAO/orbsvcs/tests/Notify/Validate_Client/Makefile.am51
-rw-r--r--TAO/orbsvcs/tests/Notify/Validate_Client/README11
-rw-r--r--TAO/orbsvcs/tests/Notify/Validate_Client/Validate_Client.mpc11
-rw-r--r--TAO/orbsvcs/tests/Notify/Validate_Client/persistency_copy95
-rw-r--r--TAO/orbsvcs/tests/Notify/Validate_Client/proxy_dummy.cpp202
-rwxr-xr-xTAO/orbsvcs/tests/Notify/Validate_Client/run_test.pl15
9 files changed, 318 insertions, 105 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index d8fd3ef900c..0ea970ea709 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,35 @@
+Thu Mar 19 13:49:23 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * configure.ac:
+ * orbsvcs/tests/Notify/Makefile.am:
+
+ Add new build to the automake files.
+
+ * orbsvcs/tests/Notify/Validate_Client/Makefile.am:
+ * orbsvcs/tests/Notify/Validate_Client/README:
+ * orbsvcs/tests/Notify/Validate_Client/Validate_Client.mpc:
+ * orbsvcs/tests/Notify/Validate_Client/proxy_dummy.cpp:
+ * orbsvcs/tests/Notify/Validate_Client/run_test.pl:
+
+ Added a server that generates the persistence file for the
+ notify service that is uses locally created references. This
+ should ensure that the validator feature will actually get a
+ OBJECT_NOT_EXIST exception rather than time out trying to
+ resolve an unknown hostname.
+
+ The problem with this test was the original source persistence
+ file contained proxy references that were unresolvable, and so
+ on some hosts, it took longer than the timeout period to fail to
+ resolve, and this caused the validator to get a TIMEOUT
+ exception and decide that the peer is still present, just
+ busy. Thus the proxy would not be reaped, and the persistence
+ file would end up with proxy references, causing the test to
+ fail.
+
+ * orbsvcs/tests/Notify/Validate_Client/persistency_copy:
+
+ Removed this file, the source data file is generated now.
+
Thu Mar 19 04:55:02 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
* orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp:
@@ -8,7 +40,7 @@ Thu Mar 19 04:55:02 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
the notify service. This was a problem on some platforms such as
Solaris where the validator thread continued to run during
service shutdown, yielding a crash.
-
+
Thu Mar 19 03:02:52 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
* orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp:
diff --git a/TAO/configure.ac b/TAO/configure.ac
index 00fc064768b..0f3f8804474 100644
--- a/TAO/configure.ac
+++ b/TAO/configure.ac
@@ -524,6 +524,7 @@ if test $tao_build_tests = yes; then
orbsvcs/tests/Notify/performance-tests/RedGreen/Makefile
orbsvcs/tests/Notify/performance-tests/Throughput/Makefile
orbsvcs/tests/Notify/Timeout/Makefile
+ orbsvcs/tests/Notify/Validate_Client/Makefile
orbsvcs/tests/Property/Makefile
orbsvcs/tests/Redundant_Naming/Makefile
orbsvcs/tests/Sched/Makefile
diff --git a/TAO/orbsvcs/tests/Notify/Makefile.am b/TAO/orbsvcs/tests/Notify/Makefile.am
index 022957c0820..fd57f40dcae 100644
--- a/TAO/orbsvcs/tests/Notify/Makefile.am
+++ b/TAO/orbsvcs/tests/Notify/Makefile.am
@@ -32,7 +32,8 @@ SUBDIRS = \
Bug_1385_Regression \
Blocking \
Basic \
- Timeout
+ Timeout \
+ Validate_Client
if BUILD_TESTS
SUBDIRS += performance-tests
diff --git a/TAO/orbsvcs/tests/Notify/Validate_Client/Makefile.am b/TAO/orbsvcs/tests/Notify/Validate_Client/Makefile.am
new file mode 100644
index 00000000000..1923fd9d2de
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Validate_Client/Makefile.am
@@ -0,0 +1,51 @@
+## Process this file with automake to create Makefile.in
+##
+## $Id$
+##
+## This file was generated by MPC. Any changes made directly to
+## this file will be lost the next time it is generated.
+##
+## MPC Command:
+## /tao_builds/phil/wustl/ACE+TAO+CIAO/ACE_wrappers/build/native/bin/mwc.pl -type automake
+
+ACE_BUILDDIR = $(top_builddir)/..
+ACE_ROOT = $(top_srcdir)/..
+TAO_BUILDDIR = $(top_builddir)
+TAO_ROOT = $(top_srcdir)
+
+
+## Makefile.Validate_Client_Proxy_Dummy.am
+
+if BUILD_EXCEPTIONS
+
+noinst_PROGRAMS = proxy_dummy
+
+proxy_dummy_CPPFLAGS = \
+ -I$(ACE_ROOT) \
+ -I$(ACE_BUILDDIR) \
+ -I$(TAO_ROOT) \
+ -I$(TAO_BUILDDIR)
+
+proxy_dummy_SOURCES = \
+ proxy_dummy.cpp
+
+proxy_dummy_LDADD = \
+ $(TAO_BUILDDIR)/tao/libTAO_PortableServer.la \
+ $(TAO_BUILDDIR)/tao/llibTAO_AnyTypeCode.la \
+ $(TAO_BUILDDIR)/tao/llibTAO.la \
+ $(ACE_BUILDDIR)/ace/libACE.la
+
+endif BUILD_EXCEPTIONS
+
+
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = -I m4
+AUTOMAKE_OPTIONS = foreign
+
+## Clean up template repositories, etc.
+clean-local:
+ -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.*
+ -rm -f gcctemp.c gcctemp so_locations *.ics
+ -rm -rf cxx_repository ptrepository ti_files
+ -rm -rf templateregistry ir.out
+ -rm -rf ptrepository SunWS_cache Templates.DB
diff --git a/TAO/orbsvcs/tests/Notify/Validate_Client/README b/TAO/orbsvcs/tests/Notify/Validate_Client/README
index 2182774607c..4bf085ce6e9 100644
--- a/TAO/orbsvcs/tests/Notify/Validate_Client/README
+++ b/TAO/orbsvcs/tests/Notify/Validate_Client/README
@@ -1,10 +1,13 @@
This test is to verify the Notification Service client connection
validation feature.
-The test simply runs Notify_Service with persistent on. It uses
-an XML persistent file with some proxies specified. Grep proxy
-in XML before and after Notify_Service start to verify if the
-Notify_Service the connection validation feature.
+The test synthesizes a persistency file that points to a dummy
+service. The Notify service is then run so that it uses the
+persistency file to restore a topology and eventually reap the
+proxies because the "ping" yields an OBJECT_NOT_EXIST exception.
+
+The result should be that after a few seconds, a new persistence
+file is created that contains no proxy references.
Run ./run_test.pl and it should output "test passed".
diff --git a/TAO/orbsvcs/tests/Notify/Validate_Client/Validate_Client.mpc b/TAO/orbsvcs/tests/Notify/Validate_Client/Validate_Client.mpc
new file mode 100644
index 00000000000..1ebcf636372
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Validate_Client/Validate_Client.mpc
@@ -0,0 +1,11 @@
+// -*- MPC -*-
+// $Id$
+
+project(*proxy_dummy): taoserver {
+ exename=proxy_dummy
+ Source_Files {
+ proxy_dummy.cpp
+ }
+}
+
+
diff --git a/TAO/orbsvcs/tests/Notify/Validate_Client/persistency_copy b/TAO/orbsvcs/tests/Notify/Validate_Client/persistency_copy
deleted file mode 100644
index 412a50707ea..00000000000
--- a/TAO/orbsvcs/tests/Notify/Validate_Client/persistency_copy
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0"?>
-<notification_service version="1.0" timestamp="197568243541">
- <channel_factory>
- <channel TopologyID="2" MaxQueueLength="0" MaxConsumers="0" MaxSuppliers="0" RejectNewEvents="false">
- <filter_factory>
- <filter FilterId="1" Grammar="TCL">
- <constraint ConstraintId="3" Expression="threshold &gt; 10">
- <EventType Domain="*" Type="*">
- </EventType>
- </constraint>
- <constraint ConstraintId="4" Expression="threshold &gt; 10">
- <EventType Domain="*" Type="*">
- </EventType>
- </constraint>
- </filter>
- <filter FilterId="2" Grammar="TCL">
- <constraint ConstraintId="3" Expression="threshold &lt; 15">
- <EventType Domain="*" Type="*">
- </EventType>
- </constraint>
- <constraint ConstraintId="4" Expression="threshold &lt; 15">
- <EventType Domain="*" Type="*">
- </EventType>
- </constraint>
- </filter>
- <filter FilterId="3" Grammar="TCL">
- <constraint ConstraintId="3" Expression="threshold &lt; 15">
- <EventType Domain="*" Type="*">
- </EventType>
- </constraint>
- <constraint ConstraintId="4" Expression="threshold &lt; 15">
- <EventType Domain="*" Type="*">
- </EventType>
- </constraint>
- </filter>
- </filter_factory>
- <consumer_admin TopologyID="6" InterFilterGroupOperator="0">
- <filter_admin>
- <filter TopologyID="1" MapId="2">
- </filter>
- </filter_admin>
- <subscriptions>
- <subscription Domain="*" Type="%ALL">
- </subscription>
- </subscriptions>
- <structured_proxy_push_supplier TopologyID="11" PeerIOR="IOR:010000003500000049444c3a6f6d672e6f72672f436f734e6f74696679436f6d6d2f5374727563747572656450757368436f6e73756d65723a312e300000000002000000000000006800000001010200070000007379646e657900006f9000001b00000014010f0052535407c6b449a11209000000000001000000010000003102000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000000000006800000001010200080000007379646e657932006f9000001b00000014010f0052535407c6b449a11209000000000001000000010000003102000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000">
- <subscriptions>
- <subscription Domain="*" Type="%ALL">
- </subscription>
- </subscriptions>
- </structured_proxy_push_supplier>
- </consumer_admin>
- <consumer_admin TopologyID="7" InterFilterGroupOperator="0">
- <filter_admin>
- <filter TopologyID="1" MapId="3">
- </filter>
- </filter_admin>
- <subscriptions>
- <subscription Domain="*" Type="%ALL">
- </subscription>
- </subscriptions>
- <structured_proxy_push_supplier TopologyID="12" PeerIOR="IOR:010000003500000049444c3a6f6d672e6f72672f436f734e6f74696679436f6d6d2f5374727563747572656450757368436f6e73756d65723a312e300000000002000000000000006800000001010200070000007379646e657900006f9000001b00000014010f0052535407c6b449a11209000100000001000000020000003102000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000000000006800000001010200080000007379646e657932006f9000001b00000014010f0052535407c6b449a11209000100000001000000020000003102000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000">
- <subscriptions>
- <subscription Domain="*" Type="%ALL">
- </subscription>
- </subscriptions>
- </structured_proxy_push_supplier>
- </consumer_admin>
- <supplier_admin TopologyID="3" InterFilterGroupOperator="0">
- <filter_admin>
- <filter TopologyID="1" MapId="1">
- </filter>
- </filter_admin>
- <subscriptions>
- <subscription Domain="*" Type="%ALL">
- </subscription>
- </subscriptions>
- <structured_proxy_push_consumer TopologyID="9" PeerIOR="IOR:010000003500000049444c3a6f6d672e6f72672f436f734e6f74696679436f6d6d2f5374727563747572656450757368537570706c6965723a312e300000000002000000000000006800000001010200070000007379646e657900006c9000001b00000014010f0052535407c6b4498a5008000000000001000000010000003102000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000000000006800000001010200080000007379646e657932006c9000001b00000014010f0052535407c6b4498a5008000000000001000000010000003102000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000">
- <subscriptions>
- <subscription Domain="*" Type="%ALL">
- </subscription>
- </subscriptions>
- </structured_proxy_push_consumer>
- <structured_proxy_push_consumer TopologyID="10" PeerIOR="IOR:010000003500000049444c3a6f6d672e6f72672f436f734e6f74696679436f6d6d2f5374727563747572656450757368537570706c6965723a312e300000000002000000000000006800000001010200070000007379646e657900006c9000001b00000014010f0052535407c6b4498a5008000100000001000000020000003102000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000000000006800000001010200080000007379646e657932006c9000001b00000014010f0052535407c6b4498a5008000100000001000000020000003102000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000">
- <subscriptions>
- <subscription Domain="*" Type="%ALL">
- </subscription>
- </subscriptions>
- </structured_proxy_push_consumer>
- </supplier_admin>
- </channel>
- <reconnect_registry>
- </reconnect_registry>
- </channel_factory>
-</notification_service>
diff --git a/TAO/orbsvcs/tests/Notify/Validate_Client/proxy_dummy.cpp b/TAO/orbsvcs/tests/Notify/Validate_Client/proxy_dummy.cpp
new file mode 100644
index 00000000000..79f179f8bfb
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Validate_Client/proxy_dummy.cpp
@@ -0,0 +1,202 @@
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_stdio.h"
+#include "tao/ORB.h"
+#include "tao/PortableServer/POAC.h"
+#include "tao/PortableServer/POAManagerC.h"
+
+ACE_RCSID (Validate_Client,
+ gen_data,
+ "$Id$")
+
+const ACE_TCHAR *output_filename = ACE_TEXT ("persistence.notify.xml");
+
+// must be char
+const char *format =
+ "<?xml version=\"1.0\"?>\n"
+ "<notification_service version=\"1.0\" timestamp=\"197568243541\">\n"
+ " <channel_factory>\n"
+ " <channel TopologyID=\"2\" MaxQueueLength=\"0\" MaxConsumers=\"0\" MaxSuppliers=\"0\" RejectNewEvents=\"false\">\n"
+ " <filter_factory>\n"
+ " <filter FilterId=\"1\" Grammar=\"TCL\">\n"
+ " <constraint ConstraintId=\"3\" Expression=\"threshold &gt; 10\">\n"
+ " <EventType Domain=\"*\" Type=\"*\">\n"
+ " </EventType>\n"
+ " </constraint>\n"
+ " <constraint ConstraintId=\"4\" Expression=\"threshold &gt; 10\">\n"
+ " <EventType Domain=\"*\" Type=\"*\">\n"
+ " </EventType>\n"
+ " </constraint>\n"
+ " </filter>\n"
+ " <filter FilterId=\"2\" Grammar=\"TCL\">\n"
+ " <constraint ConstraintId=\"3\" Expression=\"threshold &lt; 15\">\n"
+ " <EventType Domain=\"*\" Type=\"*\">\n"
+ " </EventType>\n"
+ " </constraint>\n"
+ " <constraint ConstraintId=\"4\" Expression=\"threshold &lt; 15\">\n"
+ " <EventType Domain=\"*\" Type=\"*\">\n"
+ " </EventType>\n"
+ " </constraint>\n"
+ " </filter>\n"
+ " <filter FilterId=\"3\" Grammar=\"TCL\">\n"
+ " <constraint ConstraintId=\"3\" Expression=\"threshold &lt; 15\">\n"
+ " <EventType Domain=\"*\" Type=\"*\">\n"
+ " </EventType>\n"
+ " </constraint>\n"
+ " <constraint ConstraintId=\"4\" Expression=\"threshold &lt; 15\">\n"
+ " <EventType Domain=\"*\" Type=\"*\">\n"
+ " </EventType>\n"
+ " </constraint>\n"
+ " </filter>\n"
+ " </filter_factory>\n"
+ " <consumer_admin TopologyID=\"6\" InterFilterGroupOperator=\"0\">\n"
+ " <filter_admin>\n"
+ " <filter TopologyID=\"1\" MapId=\"2\">\n"
+ " </filter>\n"
+ " </filter_admin>\n"
+ " <subscriptions>\n"
+ " <subscription Domain=\"*\" Type=\"%%ALL\">\n"
+ " </subscription>\n"
+ " </subscriptions>\n"
+ " <structured_proxy_push_supplier TopologyID=\"11\" PeerIOR=\"%s\">\n"
+ " <subscriptions>\n"
+ " <subscription Domain=\"*\" Type=\"%%ALL\">\n"
+ " </subscription>\n"
+ " </subscriptions>\n"
+ " </structured_proxy_push_supplier>\n"
+ " </consumer_admin>\n"
+ " <consumer_admin TopologyID=\"7\" InterFilterGroupOperator=\"0\">\n"
+ " <filter_admin>\n"
+ " <filter TopologyID=\"1\" MapId=\"3\">\n"
+ " </filter>\n"
+ " </filter_admin>\n"
+ " <subscriptions>\n"
+ " <subscription Domain=\"*\" Type=\"%%ALL\">\n"
+ " </subscription>\n"
+ " </subscriptions>\n"
+ " <structured_proxy_push_supplier TopologyID=\"12\" PeerIOR=\"%s\">\n"
+ " <subscriptions>\n"
+ " <subscription Domain=\"*\" Type=\"%%ALL\">\n"
+ " </subscription>\n"
+ " </subscriptions>\n"
+ " </structured_proxy_push_supplier>\n"
+ " </consumer_admin>\n"
+ " <supplier_admin TopologyID=\"3\" InterFilterGroupOperator=\"0\">\n"
+ " <filter_admin>\n"
+ " <filter TopologyID=\"1\" MapId=\"1\">\n"
+ " </filter>\n"
+ " </filter_admin>\n"
+ " <subscriptions>\n"
+ " <subscription Domain=\"*\" Type=\"%%ALL\">\n"
+ " </subscription>\n"
+ " </subscriptions>\n"
+ " <structured_proxy_push_consumer TopologyID=\"9\" PeerIOR=\"%s\">\n"
+ " <subscriptions>\n"
+ " <subscription Domain=\"*\" Type=\"%%ALL\">\n"
+ " </subscription>\n"
+ " </subscriptions>\n"
+ " </structured_proxy_push_consumer>\n"
+ " <structured_proxy_push_consumer TopologyID=\"10\" PeerIOR=\"%s\">\n"
+ " <subscriptions>\n"
+ " <subscription Domain=\"*\" Type=\"%%ALL\">\n"
+ " </subscription>\n"
+ " </subscriptions>\n"
+ " </structured_proxy_push_consumer>\n"
+ " </supplier_admin>\n"
+ " </channel>\n"
+ " <reconnect_registry>\n"
+ " </reconnect_registry>\n"
+ " </channel_factory>\n"
+ "</notification_service>\n"
+ ;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("o:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'o':
+ output_filename = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("usage: %s ")
+ ACE_TEXT ("-o <output file> ")
+ ACE_TEXT ("\n"),
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ CORBA::Object_var poa_object =
+ orb->resolve_initial_references("RootPOA");
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (poa_object.in ());
+
+ if (CORBA::is_nil (root_poa.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ " (%P|%t) Panic: nil RootPOA\n"),
+ 1);
+
+ PortableServer::POAManager_var poa_manager = root_poa->the_POAManager ();
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ CORBA::String_var repo_id =
+ "IDL:omg.org/CosNotifyComm/StructuredPushConsumer:1.0";
+
+ CORBA::Object_var object =
+ root_poa->create_reference (repo_id.in());
+
+ CORBA::String_var ior = orb->object_to_string (object.in ());
+
+ FILE *output_file= ACE_OS::fopen (output_filename, "w");
+ if (output_file == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Cannot open output file for writing IOR: %C\n"),
+ output_file),
+ 1);
+ const char * dummy_consumer_proxy = ior.in();
+
+ ACE_OS::fprintf (output_file, format,
+ dummy_consumer_proxy, dummy_consumer_proxy,
+ dummy_consumer_proxy, dummy_consumer_proxy);
+ ACE_OS::fclose (output_file);
+
+ poa_manager->activate ();
+
+ orb->run ();
+
+ ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - event loop finished\n"));
+
+ root_poa->destroy (1, 1);
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught:");
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/TAO/orbsvcs/tests/Notify/Validate_Client/run_test.pl b/TAO/orbsvcs/tests/Notify/Validate_Client/run_test.pl
index 35d80dc2725..bd989d4e6cb 100755
--- a/TAO/orbsvcs/tests/Notify/Validate_Client/run_test.pl
+++ b/TAO/orbsvcs/tests/Notify/Validate_Client/run_test.pl
@@ -14,7 +14,6 @@ PerlACE::check_privilege_group();
$notifyior = PerlACE::LocalFile ("notify.ior");
$notify_conf = PerlACE::LocalFile ("notify$PerlACE::svcconf_ext");
-$persistent_file_orig = PerlACE::LocalFile ("persistency_copy");
$persistent_file_prefix = "persistency.notif";
$persistent_file = PerlACE::LocalFile ("persistency.notif.xml");
@@ -28,14 +27,22 @@ $TS = new PerlACE::Process ("../../../Notify_Service/Notify_Service",
unlink $notifyior;
unlink <$persistent_file_prefix.*>;
-copy($persistent_file_orig, $persistent_file) or die "Persistent File cannot be copied.";
+
+$DUMMY = new PerlACE::Process ("proxy_dummy", "-o $persistent_file");
+$DUMMY->Spawn();
+if (PerlACE::waitforfile_timed ($persistent_file, $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: waiting for the proxy_dummy to start\n";
+ $DUMMY->Kill ();
+ exit 1;
+}
+
$TS->Spawn ();
if (PerlACE::waitforfile_timed ($notifyior, $PerlACE::wait_interval_for_process_creation) == -1) {
print STDERR "ERROR: waiting for the notify service to start\n";
$TS->Kill ();
- $NS->Kill ();
+ $DUMMY->Kill ();
exit 1;
}
@@ -63,7 +70,7 @@ else
}
$TS->Kill ();
-
+$DUMMY->Kill ();
unlink $persistent_file;
unlink $notifyior;