@@ -624,48 +624,51 @@ def test_link_local?
624624 end
625625
626626 def test_multicast?
627+ assert_equal ( true , IPAddr . new ( '224.0.0.0' ) . multicast? )
628+ assert_equal ( true , IPAddr . new ( '225.0.0.0' ) . multicast? )
629+ assert_equal ( true , IPAddr . new ( '224.0.0.0/4' ) . multicast? )
630+
631+ assert_equal ( false , IPAddr . new ( '240.0.0.0' ) . multicast? )
632+ assert_equal ( false , IPAddr . new ( '240.0.0.0/4' ) . multicast? )
627633 assert_equal ( false , IPAddr . new ( '192.168.0.0' ) . multicast? )
628- assert_equal ( false , IPAddr . new ( '169.254.1.1' ) . multicast? )
629- assert_equal ( false , IPAddr . new ( '169.254.254.255' ) . multicast? )
634+ assert_equal ( false , IPAddr . new ( '169.254.1.1' ) . multicast? )
635+ assert_equal ( false , IPAddr . new ( '169.254.254.255' ) . multicast? )
630636
631- # notable ipv4 multicast addresses
632- assert_equal ( true , IPAddr . new ( '224.0.0.0' ) . multicast? )
633- assert_equal ( true , IPAddr . new ( '224.0.0.1' ) . multicast? )
634- assert_equal ( true , IPAddr . new ( '224.0.0.6' ) . multicast? )
635- assert_equal ( true , IPAddr . new ( '224.0.1.41' ) . multicast? )
636- assert_equal ( true , IPAddr . new ( '224.0.1.129' ) . multicast? )
637- assert_equal ( true , IPAddr . new ( '224.0.23.12' ) . multicast? )
638- assert_equal ( true , IPAddr . new ( '239.255.255.250' ) . multicast? )
639- assert_equal ( true , IPAddr . new ( '239.255.255.253' ) . multicast? )
637+ assert_equal ( true , IPAddr . new ( 'ff00::' ) . multicast? )
638+ assert_equal ( true , IPAddr . new ( 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff' ) . multicast? )
639+ assert_equal ( true , IPAddr . new ( 'ff00::/8' ) . multicast? )
640640
641+ assert_equal ( false , IPAddr . new ( 'feff::' ) . multicast? )
642+ assert_equal ( false , IPAddr . new ( 'feff:ffff:ffff:ffff:ffff:ffff:ffff:ffff' ) . multicast? )
643+ assert_equal ( false , IPAddr . new ( 'fe00::/8' ) . multicast? )
641644 assert_equal ( false , IPAddr . new ( '::1' ) . multicast? )
642645 assert_equal ( false , IPAddr . new ( '::' ) . multicast? )
643- assert_equal ( false , IPAddr . new ( 'fb84:8bf7:e905::1' ) . multicast? )
644646
645- # notable ipv6 multicast addresses
646- assert_equal ( true , IPAddr . new ( 'ff02::1' ) . multicast? )
647- assert_equal ( true , IPAddr . new ( 'ff02::2' ) . multicast? )
648- assert_equal ( true , IPAddr . new ( 'ff02::5' ) . multicast? )
649- assert_equal ( true , IPAddr . new ( 'ff02::6' ) . multicast? )
650- assert_equal ( true , IPAddr . new ( 'ff02::8' ) . multicast? )
651- assert_equal ( true , IPAddr . new ( 'ff02::1:2' ) . multicast? )
652- assert_equal ( true , IPAddr . new ( 'ff02::1:3' ) . multicast? )
653- assert_equal ( true , IPAddr . new ( 'ff05::101' ) . multicast? )
647+ assert_equal ( true , IPAddr . new ( '::ffff:224.0.0.0' ) . multicast? )
648+ assert_equal ( false , IPAddr . new ( '::ffff:240.0.0.0' ) . multicast? )
654649 end
655650
656651 def test_link_local_multicast?
652+ assert_equal ( true , IPAddr . new ( '224.0.0.0' ) . link_local_multicast? )
653+ assert_equal ( true , IPAddr . new ( '224.0.0.0/24' ) . link_local_multicast? )
654+
655+ assert_equal ( false , IPAddr . new ( '225.0.0.0' ) . link_local_multicast? )
656+ assert_equal ( false , IPAddr . new ( '225.0.0.0/24' ) . link_local_multicast? )
657657 assert_equal ( false , IPAddr . new ( '192.168.0.0' ) . link_local_multicast? )
658- assert_equal ( false , IPAddr . new ( '169.254.1.1' ) . link_local_multicast? )
659- assert_equal ( false , IPAddr . new ( '169.254.254.255' ) . link_local_multicast? )
660- assert_equal ( false , IPAddr . new ( '239.0.0.0' ) . link_local_multicast? )
658+ assert_equal ( false , IPAddr . new ( '169.254.1.1' ) . link_local_multicast? )
659+ assert_equal ( false , IPAddr . new ( '169.254.254.255' ) . link_local_multicast? )
661660
662- assert_equal ( true , IPAddr . new ( '224.0.0.0' ) . link_local_multicast? )
661+ assert_equal ( true , IPAddr . new ( 'ff02::1' ) . link_local_multicast? )
662+ assert_equal ( true , IPAddr . new ( 'ff02::/16' ) . link_local_multicast? )
663663
664+ assert_equal ( false , IPAddr . new ( 'ff00::' ) . link_local_multicast? )
665+ assert_equal ( false , IPAddr . new ( 'ff03::1' ) . link_local_multicast? )
666+ assert_equal ( false , IPAddr . new ( 'ff03::/16' ) . link_local_multicast? )
664667 assert_equal ( false , IPAddr . new ( '::1' ) . link_local_multicast? )
665668 assert_equal ( false , IPAddr . new ( '::' ) . link_local_multicast? )
666- assert_equal ( false , IPAddr . new ( 'ff05::1' ) . link_local_multicast? )
667- assert_equal ( true , IPAddr . new ( 'ff02::1 ' ) . link_local_multicast? )
668- assert_equal ( true , IPAddr . new ( 'ff02::2 ' ) . link_local_multicast? )
669+
670+ assert_equal ( true , IPAddr . new ( '::ffff:224.0.0.0 ' ) . link_local_multicast? )
671+ assert_equal ( false , IPAddr . new ( '::ffff:225.0.0.0 ' ) . link_local_multicast? )
669672 end
670673
671674 def test_hash
0 commit comments