t/01-zone-mk.t
changeset 145 f58169fe600a
parent 144 be90bcd14ae1
child 150 3db363880766
equal deleted inserted replaced
144:be90bcd14ae1 145:f58169fe600a
     6 
     6 
     7 use Test::More;
     7 use Test::More;
     8 use File::Temp qw(tempdir);
     8 use File::Temp qw(tempdir);
     9 use Net::LibIDN qw(:all);
     9 use Net::LibIDN qw(:all);
    10 
    10 
    11 # make it work with older versions of Test::More
    11 # older versions of Test::More (debian lenny fex) don't know done_testing
    12 unless (defined &done_testing) {
    12 Test::More->import('no_plan') unless defined &done_testing;
    13 sub done_testing() {};
       
    14 use Test::More qw(no_plan);
       
    15 }
       
    16 
    13 
    17 my $CMD = "perl -Mblib blib/sbin/zone-mk";
    14 my $CMD = "perl -Mblib blib/sbin/zone-mk";
    18 
    15 
    19 system("$CMD -h &>/dev/null");
    16 system("$CMD -h >/dev/null 2>&1");
    20 is($? => 0, "exit on help");
    17 is($? => 0, "exit on help");
    21 
    18 
    22 system("$CMD -m &>/dev/null");
    19 system("$CMD -m >/dev/null 2>&1");
    23 is($? => 0, "exit on man");
    20 is($? => 0, "exit on man");
    24 
    21 
    25 system("$CMD &>/dev/null");
    22 system("$CMD >/dev/null 2>&1");
    26 ok($? > 0, "error on missing args");
    23 ok($? > 0, "error on missing args");
    27 
    24 
    28 
    25 
    29 $_ = File::Temp::tempdir CLEANUP => 1 or die "Can't make temporary directory" for my ($master_dir, $config_dir);
    26 $_ = File::Temp::tempdir CLEANUP => 1 or die "Can't make temporary directory" for my ($master_dir, $config_dir);
    30 my $tmp = Aux::make_config {
    27 my $tmp = Aux::make_config {
    32     zone_conf_dir => $config_dir,
    29     zone_conf_dir => $config_dir,
    33     hostmaster => 'hostmaster@schlittermann.de',
    30     hostmaster => 'hostmaster@schlittermann.de',
    34     template_dir => './templates'
    31     template_dir => './templates'
    35 };
    32 };
    36 $ENV{DNSTOOLS_CONF} = $tmp->filename;
    33 $ENV{DNSTOOLS_CONF} = $tmp->filename;
    37 system("$CMD xxx müller.de &>/dev/null");
    34 system("$CMD xxx müller.de >/dev/null 2>&1");
    38 is($? => 0, "created zone");
    35 is($? => 0, "created zone");
    39 
    36 
    40 my $domain = idn_to_ascii("müller.de", "UTF-8");
    37 my $domain = idn_to_ascii("müller.de", "UTF-8");
    41 ok(-s "$master_dir/$domain/$domain", "zone file $domain");
    38 ok(-s "$master_dir/$domain/$domain", "zone file $domain");
    42 ok(-s "$config_dir/$domain", "config file $domain");
    39 ok(-s "$config_dir/$domain", "config file $domain");
    43 
    40 
    44 
    41 
    45 done_testing;
    42 # older versions of Test::More (debian lenny fex) don't know done_testing
       
    43 if (defined &done_testing) { &done_testing; }