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
|
#!/usr/bin/perl
use strict;
use lib qw {blib/lib};
use Regexp::Common;
$^W = 1;
my $count;
my $tv = qr /^$RE{URI}{tv}$/;
my $keep = qr /^$RE{URI}{tv}{-keep}$/;
sub mess {print ++ $count, " - $_ (@_)\n"}
sub pass {print "ok "; &mess}
sub fail {print "not ok "; &mess}
my (@hosts, @failures);
while (<DATA>) {
chomp;
last unless /\S/;
push @hosts => $_;
}
push @hosts => "";
while (<DATA>) {
chomp;
last unless /\S/;
push @failures => $_;
}
my $max = 1 + 2 * @hosts + @failures;
print "1..$max\n";
print "ok ", ++ $count, "\n";
# print "$fail\n"; exit;
foreach my $host (@hosts) {
local $_ = "tv:$host";
/$tv/ ? pass "match" : fail "no match";
/$keep/ ? $1 eq $_ && $2 eq "tv"
&& (length $host ? $3 eq $host : !defined $3)
? pass "match; keep" : fail "match ($1, $2, $3); keep"
: fail "no match; keep"
}
foreach (@failures) {
/$tv/ ? fail "match" : pass "no match";
}
__DATA__
wqed.com
nbc.com
abc.com
abc.co.au
east.hbo.com
west.hbo.com
bbc.co.uk
TV:abc.com
abc.com
http:abc.com
tv://abc.com
tv:abc..com
tv:.abc.com
tv:abc-.com
tv:-abc.com
|