summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwilson_d <wilson_d@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-12-05 20:41:49 +0000
committerwilson_d <wilson_d@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-12-05 20:41:49 +0000
commit7410452d649bd65d52e29286e8fc1280a0ac6c83 (patch)
tree9f7fa6c574d7684f764eef712ba6a57e3640eda1
parent02750631cdb485f6d2828707971832720ae5157a (diff)
downloadATCD-oci_haft2_branch.tar.gz
ChangeLogTag: Fri Dec 5 14:40:54 2003 Dale Wilson <wilson_d@ociweb.com>oci_haft2_branch
-rw-r--r--TAO/ChangeLog9
-rw-r--r--TAO/orbsvcs/orbsvcs/PortableGroup/PG_Properties_Support.h1
-rwxr-xr-xTAO/orbsvcs/tests/FT_App/run_test_demo.pl124
-rwxr-xr-xTAO/orbsvcs/tests/FT_App/run_test_fault_consumer.pl4
4 files changed, 70 insertions, 68 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index fdb4e934a22..5c47f5ccb4b 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,12 @@
+Fri Dec 5 14:40:54 2003 Dale Wilson <wilson_d@ociweb.com>
+
+ * orbsvcs/orbsvcs/PortableGroup/PG_Properties_Support.h:
+ remove extra ';'
+
+ * orbsvcs/tests/FT_App/run_test_demo.pl:
+ * orbsvcs/tests/FT_App/run_test_fault_consumer.pl:
+ Improve documentation.
+
Fri Dec 5 11:49:01 2003 Dale Wilson <wilson_d@ociweb.com>
* orbsvcs/tests/FT_App/run_test_basic.pl:
diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Properties_Support.h b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Properties_Support.h
index 8cbc0c1e7b6..c46e04bcd3a 100644
--- a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Properties_Support.h
+++ b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Properties_Support.h
@@ -72,7 +72,6 @@ namespace TAO
const PortableGroup::Value & value
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException));
- ;
/**
* Update the default property set.
diff --git a/TAO/orbsvcs/tests/FT_App/run_test_demo.pl b/TAO/orbsvcs/tests/FT_App/run_test_demo.pl
index 63993520963..eb18a88023a 100755
--- a/TAO/orbsvcs/tests/FT_App/run_test_demo.pl
+++ b/TAO/orbsvcs/tests/FT_App/run_test_demo.pl
@@ -6,11 +6,19 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
# -*- perl -*-
# Purpose:
-# To test the FactoryRegistry as a component of ReplicationManager
+# Integration test for all FT services.
#
+# Command line options:
+# --debug_build use exes from this directory
+# if not specified use exes from ./release
+# --no_simulate
+# use real IOGR-based recovery.
+# -v display test progress messages (repeating option increases verbosity
# Process being tested:
-# FT_ReplicationManager
-# implements PortableGroup::FactoryRegistry interface.
+# FT_ReplicationManager
+# Fault_Detector
+# Fault_Notifier
+#
# Processes used in test:
# FT_Replica * 3
# implements GenericFactory interface to create TestReplicas
@@ -22,69 +30,55 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
# Object Group Creator
# Creates groups of objects.
#
-# Test Scenario (***Test: marks behavior being tested):
-#
-# First the test starts The ReplicationManager,
-# Then starts three factories. Each factory exists at a separate location.
-# The locations are named shire, bree, and rivendell. In a "real" system
-# these locations would be on separate computers.
-#
-# The factory at the shire location knows how to create hobbits.
-# The factory at the bree location knows how to create hobbits, elves, and humans.
-# The factory at rivendell can create elves.
-# Hobbits, elves, and humans are roles for TestReplica objects. A creation parameter
-# included as part of the registration information specifies which role they are playing.
-#
-# ***Test: The factories register themselves with the factory registry in the ReplicationManager.
-# Registration information includes:
-# the role,
-# the type of object created,
-# the location,
-# an object reference to the factory and
-# a set of parameters to be passed to the factory's create_object method.
-#
-# An object group creator is started and asked to create three object groups:
-# a group of hobbits, a group of elves; and another group of hobbits.
-#
-# ***Test: the object group creator asks the ReplicationManager::FactoryRegistry
-# for the set of factories that can create objects for the desired role.
-# Then it uses the create_object method for each factory to create the actual object.
-#
-# [temporary until IOGR's are working: The object group creator writes the
-# IOR's of the create objects to files -- using a file naming convention to
-# distinguish members of the group. It will be enhanced to assemble these
-# IORs into an IOGR and either write the IOGR to a file or register it with
-# the Naming Service.]
-#
-# The object group creator is also told to unregister all factories that create humans.
-# ***Test: It does so using the unregister_factory_by_role method.
-#
-# Three clients are started, one at a time. Each client is given a reference
-# to an object group
-#
-# [temporary until IOGRs and transparent reinvocaton work: each client is
-# given references to the members of the group and manages its own recovery
-# (client mediated fault tolerance)]
-#
-# Each client sends a few requests to first member of the object group. Eventually
-# this member fails and the requests are then rerouted to the second (and last)
-# member of the group.
-#
-# When a clients job is done, it exits and asks the remaining group member to
-# exit, too.
-#
-# The factories are run with the quit-on-idle option so when the last object
-# created at that location goes away, the factory exits.
-#
-# ***Test: As it exits the factory unregisters itself with the ReplicationManager::FactoryRegistry.
-# ***Test: A command line option determines whether it uses a single
-# unregister_factory_by_location call, or separate unregister_factory calles for
-# each type of object created. In this test, the shire location uses unregister_factory,
-# and bree and rivendell use unregister_factory_by_location.
+# Test Scenario
#
-# The factory registry is also run with the quit-on-idle option so when the last
-# factory unregisters itself.
-# The ReplicationManager is killed because it doesn't have a quit-on-idle option.
+# 1) Start the ReplicationManager (RM),
+# 2) Start the Fault Notification Server(FN)
+# 2.1) FN registers with RM.
+# 2.2) RM registers as consumer with FN
+# 3) Start FaultDetectorFactory at location shire (FD@shire)
+# 3.1) FD@shire registers with RM
+# 4) Start FaultDetectorFactory at location bree (FD@bree)
+# 4.1) FD@bree registers with RM
+# 5) Start Replica Factory at location shire (RF@shire) that can create hobbits
+# 5.1) RF@shire registers with RM to create hobbit@shire
+# 6) Start Replica Factory at location bree (RF@bree) that can create hobbits and elves.
+# 6.1) RF@bree registers with RM to create hobbit@bree
+# 6.1) RF@bree registers with RM to create elf@bree
+# 6) Start Replica Factory at location rivendell (RF@rivendell) that can create elves.
+# 6.1) RF@bree registers with RM to create elf@rivendell
+# 7) Start ObjectGroupCreator (OGC)
+# 7.1) OGC calls RM to create group of hobbits (IOGR1)
+# 7.1.1) OGC calls RF@shire to create hobbit@shire[1]
+# 7.1.1.1) OGC calls FD@shire to create FaultDetector for hobbit@shire[1]
+# 7.1.1.2) OGC adds hobbit@shire[1] to IOGR1.
+# 7.1.2) OGC calls RF@bree to craate hobbit@bree[1]
+# 7.1.2.1) OGC calls FD@bree to create FaultDetector for hobbit@bree[1]
+# 7.1.2.2) OGC adds hobbit@bree[1] to IOGR1.
+# 7.2) OGC calls RM to create group of elves (IOGR2)
+# 7.2.1) OGC calls RF@bree to create elf@bree[2]
+# 7.2.1.1) OGC calls FD@bree to create FaultDetector for elf@bree[2]
+# 7.2.1.2) OGC adds elf@bree[2] to IOGR2.
+# 7.2.2) OGC calls RF@rivendell to create elf@rivendell[1]
+# 7.2.2.1) OGC calls FD@shire to create FaultDetector for elf@rivendell[1]
+# 7.2.2.2) OGC adds elf@rivendell[1] to IOGR2.
+# 7.3) OGC calls RM to create group of hobbits (IOGR3)
+# 7.3.1) OGC calls RF@shire to create hobbit@shire[2]
+# 7.3.1.1) OGC calls FD@shire to create FaultDetector for hobbit@shire[2]
+# 7.3.1.2) OGC adds hobbit@shire[2] to IOGR2.
+# 7.3.2) OGC calls RF@bree to craate hobbit@bree[3]
+# 7.3.2.1) OGC calls FD@bree to create FaultDetector for hobbit@bree[3]
+# 7.3.2.2) OGC adds hobbit@bree[3] to IOGR3.
+# 8) Start client1 with IOGR1
+# 8.1) Hobbit@shire[1] fails. FD sends notification FN.
+# 8.1.1) FN sends notification to RM.
+# 8.1.2) RM removes hobbit@shire[1] from IOGR1.
+# 8.2) Client1 terminates itself and hobbit@bree[1].
+# 9) Start Cient2 with IOGR2.
+# 9.1) Repeat 8.1 & 8.2 using IOGR3.
+# 10) Start Cient3 with IOGR3.
+# 10.1) Repeat 8.1 & 8.2 using IOGR3.
+# 11) System manages to shut itself down.
use lib '../../../../bin';
#use lib '$ENV{ACE_ROOT}/bin';
diff --git a/TAO/orbsvcs/tests/FT_App/run_test_fault_consumer.pl b/TAO/orbsvcs/tests/FT_App/run_test_fault_consumer.pl
index 60fc401cd72..bfb3f98db2a 100755
--- a/TAO/orbsvcs/tests/FT_App/run_test_fault_consumer.pl
+++ b/TAO/orbsvcs/tests/FT_App/run_test_fault_consumer.pl
@@ -141,8 +141,8 @@ my($status) = 0;
my($REP1) = new PerlACE::Process (".$build_directory/ft_replica", "-f none -o $factory1_ior -t $replica1_ior -l loc1 -i type1 -q");
my($REP2) = new PerlACE::Process (".$build_directory/ft_replica", "-f none -o $factory2_ior -t $replica2_ior -l loc2 -i type1 -q");
-my($DET) = new PerlACE::Process ("$ENV{'TAO_ROOT'}/orbsvcs/Fault_Detector$build_directory/Fault_Detector", "$rm_initref -o $detector_ior -q");
-my($NOT) = new PerlACE::Process ("$ENV{'TAO_ROOT'}/orbsvcs/Fault_Notifier$build_directory/Fault_Notifier", "$rm_initref -o $notifier_ior -q");
+my($DET) = new PerlACE::Process ("$ENV{'TAO_ROOT'}/orbsvcs/Fault_Detector$build_directory/Fault_Detector", "-r -o $detector_ior -q");
+my($NOT) = new PerlACE::Process ("$ENV{'TAO_ROOT'}/orbsvcs/Fault_Notifier$build_directory/Fault_Notifier", "-r -o $notifier_ior -q");
my($CONS) = new PerlACE::Process (".$build_directory/ft_fault_consumer", "-o $ready_file -n file://$notifier_ior -q -d file://$detector_ior -r file://$replica1_ior -r file://$replica2_ior");
my($CL);