diff options
Diffstat (limited to 'CIAO/performance-tests/Benchmark/RoundTrip/run_test.pl')
-rwxr-xr-x | CIAO/performance-tests/Benchmark/RoundTrip/run_test.pl | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/CIAO/performance-tests/Benchmark/RoundTrip/run_test.pl b/CIAO/performance-tests/Benchmark/RoundTrip/run_test.pl new file mode 100755 index 00000000000..584351da998 --- /dev/null +++ b/CIAO/performance-tests/Benchmark/RoundTrip/run_test.pl @@ -0,0 +1,115 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +# +# @@ Run this script from ../descriptors/ instead. +# + +use lib "$ENV{'ACE_ROOT'}/bin"; +use PerlACE::Run_Test; + +$status = 0; +$daemon_ior = PerlACE::LocalFile ("daemon.ior"); +$svr_ior = PerlACE::LocalFile ("server.ior"); +$home_ior = PerlACE::LocalFile ("test.ior"); + +$ACE_ROOT=$ENV{'ACE_ROOT'}; +$CIAO_ROOT=$ENV{'CIAO_ROOT'}; + +unlink $daemon_ior; +unlink $svr_ior; +unlink $home_ior; + +# CIAO Daemon command line arguments +$daemon_args = "-c ../RoundTrip/svc.conf -o $daemon_ior -i CIAO_Installation_Data.ini -n $CIAO_ROOT/tools/ComponentServer/ComponentServer"; + +# CIAO Daemon Controller location: +$controller = "$CIAO_ROOT/tools/Daemon/DaemonController"; + +# Daemon controller common command line arguments +$common_args = "-ORBInitRef CIAODaemon=file://$daemon_ior"; + +# Daemon controller start_home command +$start_args = "start_home -s RoundTrip.csd -m $home_ior -c $svr_ior"; + +# Daemon controller end_home command +$end_args = "end_home -c file://$svr_ior"; + +# Daemon controller shutdown command +$shutdown_args = "shutdown"; + +# Client program command line arguments +$cl_args = "-ORBSvcConf ../RoundTrip/svc.conf -i 300000"; + +# CIAO daemon process definition +$DS = new PerlACE::Process ("$CIAO_ROOT/tools/Daemon/CIAO_Daemon", + "$daemon_args"); + +# Client process definition +$CL = new PerlACE::Process ("../RoundTrip/client", + $cl_args); + +## Starting up the CIAO daemon +$DS->Spawn (); +if (PerlACE::waitforfile_timed ($daemon_ior, 15) == -1) { + print STDERR "ERROR: Could not find daemon ior file <$daemon_ior>\n"; + $DS->Kill (); + exit 1; +} + +## Starting up a ComponentServer running the Roundtrip home. +$DC = new PerlACE::Process ("$controller", + "$common_args $start_args"); + +$DC->SpawnWaitKill (60); +if (PerlACE::waitforfile_timed ($home_ior, 15) == -1) { + print STDERR "ERROR: Could not find home ior file <$home_ior>\n"; + $DS->Kill (); + exit 1; +} + +$client = $CL->SpawnWaitKill (60); + +if ($client != 0) { + print STDERR "ERROR: client returned $client\n"; + $status = 1; +} + +## Terminating the ComponentServer running. +$DC = new PerlACE::Process ("$controller", + "$common_args $end_args"); + +$ctrl = $DC->SpawnWaitKill (60); +if ($ctrl != 0) { + print STDERR "ERROR: Fail to end component server\n"; + $DC->Kill (); + exit 1; +} + +## Terminating the ComponentServer running the RateGen home. +$DC = new PerlACE::Process ("$controller", + "$common_args $shutdown_args"); + +$ctrl = $DC->SpawnWaitKill (60); +if ($ctrl != 0) { + print STDERR "ERROR: Fail to shutdown CIAODaemon\n"; + $DS->Kill (); + exit 1; +} + +$ctrl = $DS->WaitKill (60); +if ($ctrl != 0) { + print STDERR "ERROR: CIAODaemon didn't shutdown gracefully $ctrl\n"; + $DS->Kill (); + exit 1; +} + +unlink $daemon_ior; +unlink $svr_ior; +unlink $home_ior; + +exit $status; |