diff options
Diffstat (limited to 'TAO/examples/Advanced/ch_3/run_test.pl')
-rwxr-xr-x | TAO/examples/Advanced/ch_3/run_test.pl | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/TAO/examples/Advanced/ch_3/run_test.pl b/TAO/examples/Advanced/ch_3/run_test.pl new file mode 100755 index 00000000000..1720d725e82 --- /dev/null +++ b/TAO/examples/Advanced/ch_3/run_test.pl @@ -0,0 +1,54 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{ACE_ROOT}/bin"; + +require ACEutils; +require Process; + +$status = 0; +$iorfile = "chapter_test.ior"; +unlink $iorfile; + + + +# Hacked call +$server = Process::Create ("exec ".$EXEPREFIX."server".$EXE_EXT.">$iorfile", + ""); +# Proper call +#$server = Process::Create ($EXEPREFIX."server".$EXE_EXT, ">$iorfile"); + +if (ACE::waitforfile_timed ($iorfile, 15) == -1) { + print STDERR "ERROR: timedout waiting for file <$iorfile>\n"; + $server->Kill (); $server->TimedWait (1); + exit 1; +} + +open(ior_handle, "$iorfile"); +$ior_content = <ior_handle>; + +$client = Process::Create($EXEPREFIX."client$EXE_EXT", "$ior_content"); + +if ($client->TimedWait (60) == -1) { + print STDERR "ERROR: client timedout\n"; + $status = 1; + $client->Kill (); $client->TimedWait (1); +} + + + + +$server->Terminate (); +if ($server->TimedWait (5) == -1) { + print STDERR "ERROR: cannot terminate the server\n"; + $server->Kill (); $server->TimedWait (1); + $status = 1; +} + +unlink $iorfile; + +exit $status; |