From: cvs2git Date: Tue, 20 Dec 2005 23:55:34 +0000 (+0000) Subject: This commit was manufactured by cvs2git to create branch X-Git-Tag: v9.3.2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c3dc9e5c931ee68c1f3b35161989d7a2b54cd6a4;p=thirdparty%2Fbind9.git This commit was manufactured by cvs2git to create branch 'custom_WFB_v9_3_2'. --- c3dc9e5c931ee68c1f3b35161989d7a2b54cd6a4 diff --cc bin/tests/system/start.pl index 6caf980c7d2,6caf980c7d2,38891936e38,38891936e38..00000000000 deleted file mode 100644,100644,100644,100644 --- a/bin/tests/system/start.pl +++ /dev/null @@@@@ -1,204 -1,204 -1,204 -1,204 +1,0 @@@@@ ----#!/usr/bin/perl -w ----# -- # Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") ----# Copyright (C) 2001 Internet Software Consortium. ----# ----# Permission to use, copy, modify, and distribute this software for any ----# purpose with or without fee is hereby granted, provided that the above ----# copyright notice and this permission notice appear in all copies. ----# -- # THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH -- # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -- # AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, -- # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -- # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -- # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -- # PERFORMANCE OF THIS SOFTWARE. --# THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM --# DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL --# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL --# INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, --# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING --# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, --# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION --# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ---- -- # $Id: start.pl,v 1.3.206.1 2004/03/06 10:21:48 marka Exp $ --# $Id: start.pl,v 1.3 2001/02/15 00:07:03 nelsonm Exp $ ---- ----# Framework for starting test servers. ----# Based on the type of server specified, check for port availability, remove ----# temporary files, start the server, and verify that the server is running. ----# If a server is specified, start it. Otherwise, start all servers for test. ---- ----use strict; ----use Cwd 'abs_path'; ----use Getopt::Long; ---- ----# Option handling ----# --noclean test [server [options]] ----# ----# --noclean - Do not cleanup files in server directory ----# test - name of the test directory ----# server - name of the server directory ----# options - alternate options for the server ---- ----my $usage = "usage: $0 [--noclean] test-directory [server-directory [server-options]]"; ----my $noclean; ----GetOptions('noclean' => \$noclean); ----my $test = $ARGV[0]; ----my $server = $ARGV[1]; ----my $options = $ARGV[2]; ---- ----if (!$test) { ---- print "$usage\n"; ----} ----if (!-d $test) { ---- print "No test directory: \"$test\"\n"; ----} ----if ($server && !-d $server) { ---- print "No server directory: \"$test\"\n"; ----} ---- ----# Global variables ----my $topdir = abs_path("$test/.."); ----my $testdir = abs_path("$test"); ----my $NAMED = $ENV{'NAMED'}; ----my $LWRESD = $ENV{'LWRESD'}; ----my $DIG = $ENV{'DIG'}; ----my $PERL = $ENV{'PERL'}; ---- ----# Start the server(s) ---- ----if ($server) { ---- if ($server =~ /^ns/) { ---- &check_ports($server); ---- } ---- &start_server($server, $options); ---- if ($server =~ /^ns/) { ---- &verify_server($server); ---- } ----} else { ---- # Determine which servers need to be started for this test. ---- opendir DIR, $testdir; ---- my @files = sort readdir DIR; ---- closedir DIR; ---- ---- my @ns = grep /^ns[0-9]*$/, @files; ---- my @lwresd = grep /^lwresd[0-9]*$/, @files; ---- my @ans = grep /^ans[0-9]*$/, @files; ---- ---- # Start the servers we found. ---- &check_ports(); ---- foreach (@ns, @lwresd, @ans) { ---- &start_server($_); ---- } ---- foreach (@ns) { ---- &verify_server($_); ---- } ----} ---- ----# Subroutines ---- ----sub check_ports { ---- my $server = shift; ---- my $options = ""; ---- ---- if ($server && $server =~ /(\d+)$/) { ---- $options = "-i $1"; ---- } ---- ---- my $tries = 0; ---- while (1) { ---- my $return = system("$PERL $topdir/testsock.pl -p 5300 $options"); ---- last if ($return == 0); ---- if (++$tries > 4) { ---- print "$0: could not bind to server addresses, still running?\n"; ---- print "I:server sockets not available\n"; ---- print "R:FAIL\n"; ---- system("$PERL $topdir/stop.pl $testdir"); # Is this the correct behavior? ---- exit 1; ---- } ---- print "I:Couldn't bind to socket (yet)\n"; ---- sleep 2; ---- } ----} ---- ----sub start_server { ---- my $server = shift; ---- my $options = shift; ---- ---- my $cleanup_files; ---- my $command; ---- my $pid_file; ---- ---- if ($server =~ /^ns/) { ---- $cleanup_files = "{*.jnl,*.bk,*.st,named.run}"; ---- $command = "$NAMED "; ---- if ($options) { ---- $command .= "$options"; ---- } else { ---- $command .= "-c named.conf -d 99 -g"; ---- } ---- $command .= " >named.run 2>&1 &"; ---- $pid_file = "named.pid"; ---- } elsif ($server =~ /^lwresd/) { ---- $cleanup_files = "{lwresd.run}"; ---- $command = "$LWRESD "; ---- if ($options) { ---- $command .= "$options"; ---- } else { ---- $command .= "-C resolv.conf -d 99 -g -i lwresd.pid -P 9210 -p 5300"; ---- } ---- $command .= " >lwresd.run 2>&1 &"; ---- $pid_file = "lwresd.pid"; ---- } elsif ($server =~ /^ans/) { ---- $cleanup_files = "{ans.run}"; ---- $command = "$PERL ./ans.pl "; ---- if ($options) { ---- $command .= "$options"; ---- } else { ---- $command .= ""; ---- } ---- $command .= " >ans.run 2>&1 &"; ---- $pid_file = "ans.pid"; ---- } else { ---- print "I:Unknown server type $server\n"; ---- print "R:FAIL\n"; ---- system "$PERL $topdir/stop.pl $testdir"; ---- exit 1; ---- } ---- ---- # print "I:starting server $server\n"; ---- ---- chdir "$testdir/$server"; ---- ---- unless ($noclean) { ---- unlink glob $cleanup_files; ---- } ---- ---- system "$command"; ---- ---- my $tries = 0; ---- while (!-f $pid_file) { ---- if (++$tries > 14) { ---- print "I:Couldn't start server $server\n"; ---- print "R:FAIL\n"; ---- system "$PERL $topdir/stop.pl $testdir"; ---- exit 1; ---- } ---- sleep 1; ---- } ----} ---- ----sub verify_server { ---- my $server = shift; ---- my $n = $server; ---- $n =~ s/^ns//; ---- ---- my $tries = 0; ---- while (1) { ---- my $return = system("$DIG +tcp +noadd +nosea +nostat +noquest +nocomm +nocmd -p 5300 version.bind. chaos txt \@10.53.0.$n > dig.out"); ---- last if ($return == 0); ---- print `grep ";" dig.out`; ---- if (++$tries >= 30) { ---- print "I:no response from $server\n"; ---- print "R:FAIL\n"; ---- system("$PERL $topdir/stop.pl $testdir"); ---- exit 1; ---- } ---- sleep 2; ---- } ---- unlink "dig.out"; ----}