diff options
Diffstat (limited to 'bin/tests/system/stress/setup.pl')
-rw-r--r-- | bin/tests/system/stress/setup.pl | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/bin/tests/system/stress/setup.pl b/bin/tests/system/stress/setup.pl new file mode 100644 index 0000000..40e3cea --- /dev/null +++ b/bin/tests/system/stress/setup.pl @@ -0,0 +1,83 @@ +#!/usr/bin/perl +# +# Copyright (C) Internet Systems Consortium, Inc. ("ISC") +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# See the COPYRIGHT file distributed with this work for additional +# information regarding copyright ownership. + +# +# Set up test data for zone transfer quota tests. +# +use FileHandle; + +my $n_zones = 5; +my $n_names = 1000; + +make_zones(2, undef); +make_zones(3, "10.53.0.2"); +make_zones(4, "10.53.0.3"); + +my $rootdelegations = + new FileHandle("ns1/root.db", "w") or die; + +print $rootdelegations <<END; +\$TTL 300 +. IN SOA gson.nominum.com. a.root.servers.nil. ( + 2000042100 ; serial + 600 ; refresh + 600 ; retry + 1200 ; expire + 600 ; minimum + ) +. NS a.root-servers.nil. +a.root-servers.nil. A 10.53.0.1 +END + +for ($z = 0; $z < $n_zones; $z++) { + my $zn = sprintf("zone%06d.example", $z); + foreach $ns (qw(2 3 4)) { + print $rootdelegations "$zn. NS ns$ns.$zn.\n"; + print $rootdelegations "ns$ns.$zn. A 10.53.0.$ns\n"; + } +} +close $rootdelegations; + +sub make_zones { + my ($nsno, $slaved_from) = @_; + my $namedconf = new FileHandle("ns$nsno/zones.conf", "w") or die; + for ($z = 0; $z < $n_zones; $z++) { + my $zn = sprintf("zone%06d.example", $z); + if (defined($slaved_from)) { + print $namedconf "zone \"$zn\" { type slave; " . + "file \"$zn.bk\"; masters { $slaved_from; }; };\n"; + } else { + print $namedconf "zone \"$zn\" { " . + "type master; " . + "allow-update { any; }; " . + "file \"$zn.db\"; };\n"; + + my $fn = "ns$nsno/$zn.db"; + my $f = new FileHandle($fn, "w") or die "open: $fn: $!"; + print $f "\$TTL 300 +\@ IN SOA ns2.$zn. hostmaster 1 300 120 3600 86400 +@ NS ns2.$zn. +ns2.$zn. A 10.53.0.2 +@ NS ns3.$zn. +ns3.$zn. A 10.53.0.3 +@ NS ns4.$zn. +ns4.$zn. A 10.53.0.4 + MX 10 mail1.isp.example. + MX 20 mail2.isp.example. +"; + for ($i = 0; $i < $n_names; $i++) { + print $f sprintf("name%06d", $i) . + " A 10.0.0.1\n"; + } + $f->close; + } + } +} |