Skip to content

Commit 4a677ca

Browse files
committed
Add tests for IP processing utility functions
1 parent 9810b4e commit 4a677ca

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

renderdoc/os/os_specific.cpp

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,61 @@ TEST_CASE("Test OS-specific functions", "[osspecific]")
558558
if(locked)
559559
lock.Unlock();
560560
};
561+
562+
SECTION("IP processing")
563+
{
564+
CHECK(Network::MakeIP(127, 0, 0, 1) == 0x7f000001);
565+
CHECK(Network::MakeIP(216, 58, 211, 174) == 0xD83AD3AE);
566+
CHECK(Network::GetIPOctet(Network::MakeIP(216, 58, 211, 174), 0) == 216);
567+
CHECK(Network::GetIPOctet(Network::MakeIP(216, 58, 211, 174), 1) == 58);
568+
CHECK(Network::GetIPOctet(Network::MakeIP(216, 58, 211, 174), 2) == 211);
569+
CHECK(Network::GetIPOctet(Network::MakeIP(216, 58, 211, 174), 3) == 174);
570+
571+
CHECK(Network::MatchIPMask(Network::MakeIP(127, 0, 0, 1), 0x7f000001, 0xFFFFFFFF));
572+
CHECK(Network::MatchIPMask(Network::MakeIP(127, 0, 0, 1), 0x7f000000, 0xFF000000));
573+
CHECK(Network::MatchIPMask(Network::MakeIP(127, 8, 0, 1), 0x7f000000, 0xFF000000));
574+
CHECK(Network::MatchIPMask(Network::MakeIP(127, 100, 22, 5), 0x7f000000, 0xFF000000));
575+
CHECK(Network::MatchIPMask(Network::MakeIP(127, 66, 66, 66), 0x7f000000, 0xFF000000));
576+
CHECK_FALSE(Network::MatchIPMask(Network::MakeIP(216, 58, 211, 174), 0x80000000, ~0U));
577+
578+
uint32_t ip = 0;
579+
uint32_t mask = 0;
580+
Network::ParseIPRangeCIDR("foobar", ip, mask);
581+
CHECK(ip == 0);
582+
CHECK(mask == 0);
583+
584+
Network::ParseIPRangeCIDR("", ip, mask);
585+
CHECK(ip == 0);
586+
CHECK(mask == 0);
587+
588+
Network::ParseIPRangeCIDR("1.23/4", ip, mask);
589+
CHECK(ip == 0);
590+
CHECK(mask == 0);
591+
592+
Network::ParseIPRangeCIDR("1.23.4.5.6.7/8", ip, mask);
593+
CHECK(ip == 0);
594+
CHECK(mask == 0);
595+
596+
Network::ParseIPRangeCIDR("999.888.777.666/555", ip, mask);
597+
CHECK(ip == 0);
598+
CHECK(mask == 0);
599+
600+
Network::ParseIPRangeCIDR("216.58,211.174/16", ip, mask);
601+
CHECK(ip == 0);
602+
CHECK(mask == 0);
603+
604+
Network::ParseIPRangeCIDR("216.58.211.174/16", ip, mask);
605+
CHECK(ip == Network::MakeIP(216, 58, 211, 174));
606+
CHECK(mask == 0xFFFF0000);
607+
608+
Network::ParseIPRangeCIDR("216.58.211.174/8", ip, mask);
609+
CHECK(ip == Network::MakeIP(216, 58, 211, 174));
610+
CHECK(mask == 0xFF000000);
611+
612+
Network::ParseIPRangeCIDR("216.58.211.174/31", ip, mask);
613+
CHECK(ip == Network::MakeIP(216, 58, 211, 174));
614+
CHECK(mask == 0xFFFFFFFe);
615+
};
561616
};
562617

563618
#endif // ENABLED(ENABLE_UNIT_TESTS)

0 commit comments

Comments
 (0)