CidrAddressTests.cpp 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <AzNetworking/Utilities/CidrAddress.h>
  9. #include <AzNetworking/Utilities/IpAddress.h>
  10. #include <AzCore/UnitTest/TestTypes.h>
  11. namespace UnitTest
  12. {
  13. class CidrAddressTests
  14. : public LeakDetectionFixture
  15. {
  16. };
  17. static const AzNetworking::IpAddress testIp1 = AzNetworking::IpAddress(127, 0, 0, 1, 0);
  18. static const AzNetworking::IpAddress testIp2 = AzNetworking::IpAddress(127, 0, 0, 255, 0);
  19. static const AzNetworking::IpAddress testIp3 = AzNetworking::IpAddress(127, 0, 255, 255, 0);
  20. static const AzNetworking::IpAddress testIp4 = AzNetworking::IpAddress(127, 255, 255, 255, 0);
  21. static const AzNetworking::IpAddress testIp5 = AzNetworking::IpAddress(255, 255, 255, 255, 0);
  22. TEST_F(CidrAddressTests, Test32BitMask)
  23. {
  24. AzNetworking::CidrAddress testCidr1("127.0.0.1/32");
  25. EXPECT_TRUE (testCidr1.IsMatch(testIp1));
  26. EXPECT_FALSE(testCidr1.IsMatch(testIp2));
  27. EXPECT_FALSE(testCidr1.IsMatch(testIp3));
  28. EXPECT_FALSE(testCidr1.IsMatch(testIp4));
  29. EXPECT_FALSE(testCidr1.IsMatch(testIp5));
  30. }
  31. TEST_F(CidrAddressTests, Test24BitMask)
  32. {
  33. AzNetworking::CidrAddress testCidr2("127.0.0.1/24");
  34. EXPECT_TRUE (testCidr2.IsMatch(testIp1));
  35. EXPECT_TRUE (testCidr2.IsMatch(testIp2));
  36. EXPECT_FALSE(testCidr2.IsMatch(testIp3));
  37. EXPECT_FALSE(testCidr2.IsMatch(testIp4));
  38. EXPECT_FALSE(testCidr2.IsMatch(testIp5));
  39. }
  40. TEST_F(CidrAddressTests, Test16BitMask)
  41. {
  42. AzNetworking::CidrAddress testCidr3("127.0.0.1/16");
  43. EXPECT_TRUE (testCidr3.IsMatch(testIp1));
  44. EXPECT_TRUE (testCidr3.IsMatch(testIp2));
  45. EXPECT_TRUE (testCidr3.IsMatch(testIp3));
  46. EXPECT_FALSE(testCidr3.IsMatch(testIp4));
  47. EXPECT_FALSE(testCidr3.IsMatch(testIp5));
  48. }
  49. TEST_F(CidrAddressTests, Test8BitMask)
  50. {
  51. AzNetworking::CidrAddress testCidr4("127.0.0.1/8");
  52. EXPECT_TRUE (testCidr4.IsMatch(testIp1));
  53. EXPECT_TRUE (testCidr4.IsMatch(testIp2));
  54. EXPECT_TRUE (testCidr4.IsMatch(testIp3));
  55. EXPECT_TRUE (testCidr4.IsMatch(testIp4));
  56. EXPECT_FALSE(testCidr4.IsMatch(testIp5));
  57. }
  58. TEST_F(CidrAddressTests, TestAnyMatch)
  59. {
  60. AzNetworking::CidrAddress testCidr5("127.0.0.1/0");
  61. EXPECT_TRUE (testCidr5.IsMatch(testIp1));
  62. EXPECT_TRUE (testCidr5.IsMatch(testIp2));
  63. EXPECT_TRUE (testCidr5.IsMatch(testIp3));
  64. EXPECT_TRUE (testCidr5.IsMatch(testIp4));
  65. EXPECT_TRUE (testCidr5.IsMatch(testIp5));
  66. }
  67. TEST_F(CidrAddressTests, TestOutOfRange)
  68. {
  69. AzNetworking::CidrAddress testCidr6("127.0.0.1/33");
  70. EXPECT_EQ(testCidr6.GetMask(), 0xFFFFFFFF);
  71. AzNetworking::CidrAddress testCidr7("127.0.0.1/-1");
  72. EXPECT_EQ(testCidr7.GetMask(), 0);
  73. }
  74. }