Newer
Older
NetAddr-IP / t / v4-split-list.t
@Michael Robinton Michael Robinton on 21 Oct 2014 1 KB Import of MIKER/NetAddr-IP-4.020 from CPAN.
  1. use NetAddr::IP;
  2.  
  3. # $Id: v4-split-list.t,v 1.1.1.1 2006/08/14 15:36:06 lem Exp $
  4.  
  5. my %addr = (
  6. '10.0.0.10' => [ '255.255.252.0', 24,
  7. [
  8. '10.0.0.0', '10.0.1.0',
  9. '10.0.2.0', '10.0.3.0'
  10. ]],
  11. '10.0.0.1' => [ '255.255.255.254', 32,
  12. [
  13. '10.0.0.0', '10.0.0.1',
  14. ]],
  15. '10.0.0.2' => [ '255.255.255.255', 32,
  16. [
  17. '10.0.0.2',
  18. ]],
  19. '10.0.0.3' => [ '255.255.255.252', 32,
  20. [
  21. '10.0.0.0', '10.0.0.1',
  22. '10.0.0.2', '10.0.0.3',
  23. ]],
  24. );
  25.  
  26. my $count = $| = 1;
  27. print "1..", (2 * scalar keys %addr), "\n";
  28.  
  29. for my $a (keys %addr) {
  30. my $ip = new NetAddr::IP $a, $addr{$a}->[0];
  31. my @r = $ip->split($addr{$a}->[1]);
  32. my @m = ();
  33.  
  34. if (scalar @r == @{$addr{$a}->[2]}) {
  35. print "ok ", $count++, "\n";
  36. }
  37. else {
  38. print "not ok ", $count++, " (number $a)\n";
  39. }
  40.  
  41. for my $r (@r) {
  42. push @m, grep { $_ eq $r->addr } @{$addr{$a}->[2]};
  43. }
  44.  
  45. if (scalar @m == scalar @r) {
  46. print "ok ", $count++, "\n";
  47. }
  48. else {
  49. print "not ok ", $count++, " (match $a)\n";
  50. print "split=", join(', ', (map { $_->addr } @r)), "\n";
  51. print "match=", join(', ', @m), "\n";
  52.  
  53. }
  54. }