summaryrefslogtreecommitdiff
path: root/TAO/tests/Connection_Purging/run_test.pl
blob: 5dafb7577efdce924dc4ad6288d798384e738fcd (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
76
77
78
79
80
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";
use PerlACE::Run_Test;

$iorfile = PerlACE::LocalFile ("server.ior");
unlink $iorfile;

$status = 0;
$endopoint = "";
$use_uiop = 0;
$use_shmiop = 0;
$server_count = 20;
@SV = ();

foreach $arg (@ARGV) {
  if ($arg eq "-h") {
    print "Usage: $0 [-u | -s]\n" .
          "       -u for UIOP\n" .
          "       -s for SHMIOP\n";
    exit(0);
  }
  elsif ($arg eq "-u") {
    $use_uiop = 1;
  }
  elsif ($arg eq "-s") {
    $use_shmiop = 1;
  }
}

for($i = 0; $i < $server_count; $i++) {
  if ($use_uiop) {
    $socket = PerlACE::LocalFile ("socket.$i");
    unlink $socket;
    $endpoint = "-ORBEndpoint uiop://$socket";
  }
  elsif ($use_shmiop) {
    $server_shmiop_conf = PerlACE::LocalFile ("server_shmiop$PerlACE::svcconf_ext");
    $endpoint = "-ORBEndpoint shmiop:// -ORBSvcConf $server_shmiop_conf";
  }

  unlink "$iorfile.$i";

  $SV[$i] = new PerlACE::Process ("server", "$endpoint -o $iorfile.$i");
  $SV[$i]->Spawn ();

  if (PerlACE::waitforfile_timed ("$iorfile.$i", $PerlACE::wait_interval_for_process_creation) == -1) {
    print STDERR "ERROR: cannot find file <$iorfile.$i>\n";
    $SV[$i]->Kill (); $SV[$i]->TimedWait (1);
    exit 1;
  }
}

foreach $conf ("client.lru$PerlACE::svcconf_ext", "client.lfu$PerlACE::svcconf_ext",
               "client.fifo$PerlACE::svcconf_ext", "client.null$PerlACE::svcconf_ext") {
  print "========== Client using $conf configurator file =========\n";
  $CL = new PerlACE::Process ("client", " -k $iorfile " .
                                        "-ORBSvcConf $conf ".
                                        "-ORBDebugLevel 1");

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

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

for($i = 0; $i < $server_count; $i++) {
  $SV[$i]->Kill ();
  unlink "$iorfile.$i";
  unlink "socket.$i";
}

exit $status;