Newer
Older
NetAddr-IP / Lite / t / v4-range.t
  1. use NetAddr::IP::Lite;
  2.  
  3. use Test::More;
  4.  
  5. my @ranges = (
  6. [ '10.0.0.0/8', '10.0.0.0', '10.255.255.255' ],
  7. [ '192.168.0.0/16', '192.168.0.0', '192.168.255.255' ],
  8. );
  9.  
  10. my @weird = (
  11. [ '128.111.12.0', '128.111.12.129' ],
  12. );
  13.  
  14. plan tests => 6 * @ranges + 2 * @weird + 28;
  15.  
  16. for my $r (@ranges) {
  17. my $r1 = new NetAddr::IP::Lite $r->[1] . '-' . $r->[2];
  18. isa_ok($r1, 'NetAddr::IP::Lite');
  19. is($r1, $r->[0], "Correct interpretation (with space)");
  20.  
  21. $r1 = new NetAddr::IP::Lite $r->[1] . ' - ' . $r->[2];
  22. isa_ok($r1, 'NetAddr::IP::Lite');
  23. is($r1, $r->[0], "Correct interpretation (w/o space)");
  24.  
  25. $r1 = new NetAddr::IP::Lite $r->[0];
  26. isa_ok($r1, 'NetAddr::IP::Lite');
  27. is($r1->range, $r->[1] . ' - ' . $r->[2], "Correct reverse");
  28. }
  29.  
  30. for my $r (@weird)
  31. {
  32. my $r1 = new NetAddr::IP::Lite $r->[0] . '-' . $r->[1];
  33. ok(! defined $r1, "Weird range w/o space produces undef");
  34. $r1 = new NetAddr::IP::Lite $r->[0] . ' - ' . $r->[1];
  35. ok(! defined $r1, "Weird range with space produces undef");
  36. }
  37.  
  38. for my $o (254, 252, 248, 240, 224, 192, 128)
  39. {
  40. my $r1 = new NetAddr::IP::Lite '0.0.0.0 - ' . $o . '.0.0.0';
  41. ok(! defined $r1, "Weird $o range, first octet");
  42. $r1 = new NetAddr::IP::Lite '0.0.0.0 - 0.' . $o . '.0.0';
  43. ok(! defined $r1, "Weird $o range, second octet");
  44. $r1 = new NetAddr::IP::Lite '0.0.0.0 - 0.0.' . $o . '.0';
  45. ok(! defined $r1, "Weird $o range, third octet");
  46. $r1 = new NetAddr::IP::Lite '0.0.0.0 - 0.0.0.' . $o;
  47. ok(! defined $r1, "Weird $o range, fourth octet");
  48. }