diff options
author | wilson_d <wilson_d@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-12-05 20:41:49 +0000 |
---|---|---|
committer | wilson_d <wilson_d@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-12-05 20:41:49 +0000 |
commit | 7410452d649bd65d52e29286e8fc1280a0ac6c83 (patch) | |
tree | 9f7fa6c574d7684f764eef712ba6a57e3640eda1 | |
parent | 02750631cdb485f6d2828707971832720ae5157a (diff) | |
download | ATCD-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/ChangeLog | 9 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/PortableGroup/PG_Properties_Support.h | 1 | ||||
-rwxr-xr-x | TAO/orbsvcs/tests/FT_App/run_test_demo.pl | 124 | ||||
-rwxr-xr-x | TAO/orbsvcs/tests/FT_App/run_test_fault_consumer.pl | 4 |
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); |