summaryrefslogtreecommitdiff
path: root/trunk/TAO/tests/Portable_Interceptors/PICurrent/run_test.pl
blob: 1f767aa5fe26bac74c8fe2d00e97d05c541987b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
    & eval 'exec perl -S $0 $argv:q'
    if 0;

# -*- perl -*-
# $Id$

use lib  "$ENV{ACE_ROOT}/bin";
use PerlACE::Run_Test;

$status = 0;
$file = PerlACE::LocalFile ("test.ior");
$cvsfile= PerlACE::LocalFile ("svc.conf");
unlink $cvsfile;

sub DoTest
{
  $status = 0;

  if (PerlACE::is_vxworks_test()) {
      $SV = new PerlACE::ProcessVX ("server", "-o test.ior");
  }
  else {
      $SV = new PerlACE::Process ("server", "-o $file");    
  }
  $CL = new PerlACE::Process ("client", "-k file://$file");

  print STDERR "\n\n==== Running PICurrent test\n";

  unlink $file;
  $SV->Spawn ();

  if (PerlACE::waitforfile_timed ($file, $PerlACE::wait_interval_for_process_creation) == -1) {
      print STDERR "ERROR: cannot find file <$file>\n";
      $SV->Kill (); 
      return 1;
  }

  $client = $CL->SpawnWaitKill (60);

  if ($client != 0) {
      print STDERR "ERROR: client returned $client\n";
      $status = 1;
  }

  $serverexit = $SV->WaitKill (20);

  if ($serverexit != 0) {
      print STDERR "ERROR: server returned $serverexit\n";
      $status = $serverexit;
  }
  
  return $status;
}

print STDERR "\n\n==== Without svc.conf (single-threaded)\n";
$status= DoTest();
if (0 != $status) {
   exit $status
}

$line= "static Server_Strategy_Factory \"-ORBConcurrency thread-per-connection\"\n";
open ($fh, '>', $cvsfile);
syswrite ($fh, $line);
close ($fh);
print STDERR "\n\n==== With svc.conf (thread-per-connection)\n";
$status= DoTest();
if (0 != $status) {
   exit $status
}

unlink $file;
unlink $cvsfile;

exit $status;