OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "chromeos/network/network_util.h" |
| 6 |
| 7 #include "testing/gtest/include/gtest/gtest.h" |
| 8 |
| 9 using chromeos::network_util::NetmaskToPrefixLength; |
| 10 using chromeos::network_util::PrefixLengthToNetmask; |
| 11 |
| 12 typedef testing::Test NetworkUtilTest; |
| 13 |
| 14 TEST_F(NetworkUtilTest, NetmaskToPrefixLength) { |
| 15 // Valid netmasks |
| 16 EXPECT_EQ(32, NetmaskToPrefixLength("255.255.255.255")); |
| 17 EXPECT_EQ(31, NetmaskToPrefixLength("255.255.255.254")); |
| 18 EXPECT_EQ(30, NetmaskToPrefixLength("255.255.255.252")); |
| 19 EXPECT_EQ(29, NetmaskToPrefixLength("255.255.255.248")); |
| 20 EXPECT_EQ(28, NetmaskToPrefixLength("255.255.255.240")); |
| 21 EXPECT_EQ(27, NetmaskToPrefixLength("255.255.255.224")); |
| 22 EXPECT_EQ(26, NetmaskToPrefixLength("255.255.255.192")); |
| 23 EXPECT_EQ(25, NetmaskToPrefixLength("255.255.255.128")); |
| 24 EXPECT_EQ(24, NetmaskToPrefixLength("255.255.255.0")); |
| 25 EXPECT_EQ(23, NetmaskToPrefixLength("255.255.254.0")); |
| 26 EXPECT_EQ(22, NetmaskToPrefixLength("255.255.252.0")); |
| 27 EXPECT_EQ(21, NetmaskToPrefixLength("255.255.248.0")); |
| 28 EXPECT_EQ(20, NetmaskToPrefixLength("255.255.240.0")); |
| 29 EXPECT_EQ(19, NetmaskToPrefixLength("255.255.224.0")); |
| 30 EXPECT_EQ(18, NetmaskToPrefixLength("255.255.192.0")); |
| 31 EXPECT_EQ(17, NetmaskToPrefixLength("255.255.128.0")); |
| 32 EXPECT_EQ(16, NetmaskToPrefixLength("255.255.0.0")); |
| 33 EXPECT_EQ(15, NetmaskToPrefixLength("255.254.0.0")); |
| 34 EXPECT_EQ(14, NetmaskToPrefixLength("255.252.0.0")); |
| 35 EXPECT_EQ(13, NetmaskToPrefixLength("255.248.0.0")); |
| 36 EXPECT_EQ(12, NetmaskToPrefixLength("255.240.0.0")); |
| 37 EXPECT_EQ(11, NetmaskToPrefixLength("255.224.0.0")); |
| 38 EXPECT_EQ(10, NetmaskToPrefixLength("255.192.0.0")); |
| 39 EXPECT_EQ(9, NetmaskToPrefixLength("255.128.0.0")); |
| 40 EXPECT_EQ(8, NetmaskToPrefixLength("255.0.0.0")); |
| 41 EXPECT_EQ(7, NetmaskToPrefixLength("254.0.0.0")); |
| 42 EXPECT_EQ(6, NetmaskToPrefixLength("252.0.0.0")); |
| 43 EXPECT_EQ(5, NetmaskToPrefixLength("248.0.0.0")); |
| 44 EXPECT_EQ(4, NetmaskToPrefixLength("240.0.0.0")); |
| 45 EXPECT_EQ(3, NetmaskToPrefixLength("224.0.0.0")); |
| 46 EXPECT_EQ(2, NetmaskToPrefixLength("192.0.0.0")); |
| 47 EXPECT_EQ(1, NetmaskToPrefixLength("128.0.0.0")); |
| 48 EXPECT_EQ(0, NetmaskToPrefixLength("0.0.0.0")); |
| 49 // Invalid netmasks |
| 50 EXPECT_EQ(-1, NetmaskToPrefixLength("255.255.255")); |
| 51 EXPECT_EQ(-1, NetmaskToPrefixLength("255.255.255.255.255")); |
| 52 EXPECT_EQ(-1, NetmaskToPrefixLength("255.255.255.255.0")); |
| 53 EXPECT_EQ(-1, NetmaskToPrefixLength("255.255.255.256")); |
| 54 EXPECT_EQ(-1, NetmaskToPrefixLength("255.255.255.1")); |
| 55 EXPECT_EQ(-1, NetmaskToPrefixLength("255.255.240.255")); |
| 56 EXPECT_EQ(-1, NetmaskToPrefixLength("255.0.0.255")); |
| 57 EXPECT_EQ(-1, NetmaskToPrefixLength("255.255.255.FF")); |
| 58 EXPECT_EQ(-1, NetmaskToPrefixLength("255,255,255,255")); |
| 59 EXPECT_EQ(-1, NetmaskToPrefixLength("255 255 255 255")); |
| 60 } |
| 61 |
| 62 TEST_F(NetworkUtilTest, PrefixLengthToNetmask) { |
| 63 // Valid Prefix Lengths |
| 64 EXPECT_EQ("255.255.255.255", PrefixLengthToNetmask(32)); |
| 65 EXPECT_EQ("255.255.255.254", PrefixLengthToNetmask(31)); |
| 66 EXPECT_EQ("255.255.255.252", PrefixLengthToNetmask(30)); |
| 67 EXPECT_EQ("255.255.255.248", PrefixLengthToNetmask(29)); |
| 68 EXPECT_EQ("255.255.255.240", PrefixLengthToNetmask(28)); |
| 69 EXPECT_EQ("255.255.255.224", PrefixLengthToNetmask(27)); |
| 70 EXPECT_EQ("255.255.255.192", PrefixLengthToNetmask(26)); |
| 71 EXPECT_EQ("255.255.255.128", PrefixLengthToNetmask(25)); |
| 72 EXPECT_EQ("255.255.255.0", PrefixLengthToNetmask(24)); |
| 73 EXPECT_EQ("255.255.254.0", PrefixLengthToNetmask(23)); |
| 74 EXPECT_EQ("255.255.252.0", PrefixLengthToNetmask(22)); |
| 75 EXPECT_EQ("255.255.248.0", PrefixLengthToNetmask(21)); |
| 76 EXPECT_EQ("255.255.240.0", PrefixLengthToNetmask(20)); |
| 77 EXPECT_EQ("255.255.224.0", PrefixLengthToNetmask(19)); |
| 78 EXPECT_EQ("255.255.192.0", PrefixLengthToNetmask(18)); |
| 79 EXPECT_EQ("255.255.128.0", PrefixLengthToNetmask(17)); |
| 80 EXPECT_EQ("255.255.0.0", PrefixLengthToNetmask(16)); |
| 81 EXPECT_EQ("255.254.0.0", PrefixLengthToNetmask(15)); |
| 82 EXPECT_EQ("255.252.0.0", PrefixLengthToNetmask(14)); |
| 83 EXPECT_EQ("255.248.0.0", PrefixLengthToNetmask(13)); |
| 84 EXPECT_EQ("255.240.0.0", PrefixLengthToNetmask(12)); |
| 85 EXPECT_EQ("255.224.0.0", PrefixLengthToNetmask(11)); |
| 86 EXPECT_EQ("255.192.0.0", PrefixLengthToNetmask(10)); |
| 87 EXPECT_EQ("255.128.0.0", PrefixLengthToNetmask(9)); |
| 88 EXPECT_EQ("255.0.0.0", PrefixLengthToNetmask(8)); |
| 89 EXPECT_EQ("254.0.0.0", PrefixLengthToNetmask(7)); |
| 90 EXPECT_EQ("252.0.0.0", PrefixLengthToNetmask(6)); |
| 91 EXPECT_EQ("248.0.0.0", PrefixLengthToNetmask(5)); |
| 92 EXPECT_EQ("240.0.0.0", PrefixLengthToNetmask(4)); |
| 93 EXPECT_EQ("224.0.0.0", PrefixLengthToNetmask(3)); |
| 94 EXPECT_EQ("192.0.0.0", PrefixLengthToNetmask(2)); |
| 95 EXPECT_EQ("128.0.0.0", PrefixLengthToNetmask(1)); |
| 96 EXPECT_EQ("0.0.0.0", PrefixLengthToNetmask(0)); |
| 97 // Invalid Prefix Lengths |
| 98 EXPECT_EQ("", PrefixLengthToNetmask(-1)); |
| 99 EXPECT_EQ("", PrefixLengthToNetmask(33)); |
| 100 EXPECT_EQ("", PrefixLengthToNetmask(255)); |
| 101 } |
OLD | NEW |