init
This commit is contained in:
315
tests/cidr-tests.nix
Normal file
315
tests/cidr-tests.nix
Normal file
@@ -0,0 +1,315 @@
|
||||
{
|
||||
lib,
|
||||
cidr,
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (lib) runTests;
|
||||
|
||||
in
|
||||
runTests {
|
||||
testParseBasic = {
|
||||
expr = cidr.parse "192.168.1.0/24";
|
||||
expected = {
|
||||
address = 3232235776;
|
||||
prefixLen = 24;
|
||||
};
|
||||
};
|
||||
|
||||
testParseSlash32 = {
|
||||
expr = cidr.parse "10.0.0.1/32";
|
||||
expected = {
|
||||
address = 167772161;
|
||||
prefixLen = 32;
|
||||
};
|
||||
};
|
||||
|
||||
testParseSlash0 = {
|
||||
expr = cidr.parse "0.0.0.0/0";
|
||||
expected = {
|
||||
address = 0;
|
||||
prefixLen = 0;
|
||||
};
|
||||
};
|
||||
|
||||
testMakeBasic = {
|
||||
expr = cidr.make "192.168.1.0" 24;
|
||||
expected = {
|
||||
address = 3232235776;
|
||||
prefixLen = 24;
|
||||
};
|
||||
};
|
||||
|
||||
testFormatBasic = {
|
||||
expr = cidr.format {
|
||||
address = 3232235776;
|
||||
prefixLen = 24;
|
||||
};
|
||||
expected = "192.168.1.0/24";
|
||||
};
|
||||
|
||||
testNetmask24 = {
|
||||
expr = cidr.netmaskStr 24;
|
||||
expected = "255.255.255.0";
|
||||
};
|
||||
|
||||
testNetmask16 = {
|
||||
expr = cidr.netmaskStr 16;
|
||||
expected = "255.255.0.0";
|
||||
};
|
||||
|
||||
testNetmask8 = {
|
||||
expr = cidr.netmaskStr 8;
|
||||
expected = "255.0.0.0";
|
||||
};
|
||||
|
||||
testNetmask32 = {
|
||||
expr = cidr.netmaskStr 32;
|
||||
expected = "255.255.255.255";
|
||||
};
|
||||
|
||||
testNetmask0 = {
|
||||
expr = cidr.netmaskStr 0;
|
||||
expected = "0.0.0.0";
|
||||
};
|
||||
|
||||
testNetmask25 = {
|
||||
expr = cidr.netmaskStr 25;
|
||||
expected = "255.255.255.128";
|
||||
};
|
||||
|
||||
testWildcard24 = {
|
||||
expr = cidr.wildcardStr 24;
|
||||
expected = "0.0.0.255";
|
||||
};
|
||||
|
||||
testWildcard16 = {
|
||||
expr = cidr.wildcardStr 16;
|
||||
expected = "0.0.255.255";
|
||||
};
|
||||
|
||||
testNetworkBasic = {
|
||||
expr = cidr.networkStr "192.168.1.50/24";
|
||||
expected = "192.168.1.0";
|
||||
};
|
||||
|
||||
testNetworkAlreadyNetwork = {
|
||||
expr = cidr.networkStr "192.168.1.0/24";
|
||||
expected = "192.168.1.0";
|
||||
};
|
||||
|
||||
testNetworkSlash16 = {
|
||||
expr = cidr.networkStr "172.16.45.67/16";
|
||||
expected = "172.16.0.0";
|
||||
};
|
||||
|
||||
testBroadcastBasic = {
|
||||
expr = cidr.broadcastStr "192.168.1.0/24";
|
||||
expected = "192.168.1.255";
|
||||
};
|
||||
|
||||
testBroadcastSlash16 = {
|
||||
expr = cidr.broadcastStr "172.16.0.0/16";
|
||||
expected = "172.16.255.255";
|
||||
};
|
||||
|
||||
testBroadcastSlash30 = {
|
||||
expr = cidr.broadcastStr "192.168.1.0/30";
|
||||
expected = "192.168.1.3";
|
||||
};
|
||||
|
||||
testFirstHostBasic = {
|
||||
expr = cidr.firstHostStr "192.168.1.0/24";
|
||||
expected = "192.168.1.1";
|
||||
};
|
||||
|
||||
testLastHostBasic = {
|
||||
expr = cidr.lastHostStr "192.168.1.0/24";
|
||||
expected = "192.168.1.254";
|
||||
};
|
||||
|
||||
testFirstHostSlash31 = {
|
||||
expr = cidr.firstHostStr "192.168.1.0/31";
|
||||
expected = "192.168.1.0";
|
||||
};
|
||||
|
||||
testLastHostSlash31 = {
|
||||
expr = cidr.lastHostStr "192.168.1.0/31";
|
||||
expected = "192.168.1.1";
|
||||
};
|
||||
|
||||
testFirstHostSlash32 = {
|
||||
expr = cidr.firstHostStr "192.168.1.1/32";
|
||||
expected = "192.168.1.1";
|
||||
};
|
||||
|
||||
testSize24 = {
|
||||
expr = cidr.size "192.168.1.0/24";
|
||||
expected = 256;
|
||||
};
|
||||
|
||||
testSize16 = {
|
||||
expr = cidr.size "172.16.0.0/16";
|
||||
expected = 65536;
|
||||
};
|
||||
|
||||
testSize32 = {
|
||||
expr = cidr.size "192.168.1.1/32";
|
||||
expected = 1;
|
||||
};
|
||||
|
||||
testSize30 = {
|
||||
expr = cidr.size "192.168.1.0/30";
|
||||
expected = 4;
|
||||
};
|
||||
|
||||
testHostCount24 = {
|
||||
expr = cidr.hostCount "192.168.1.0/24";
|
||||
expected = 254;
|
||||
};
|
||||
|
||||
testHostCount30 = {
|
||||
expr = cidr.hostCount "192.168.1.0/30";
|
||||
expected = 2;
|
||||
};
|
||||
|
||||
testHostCount31 = {
|
||||
expr = cidr.hostCount "192.168.1.0/31";
|
||||
expected = 2;
|
||||
};
|
||||
|
||||
testHostCount32 = {
|
||||
expr = cidr.hostCount "192.168.1.1/32";
|
||||
expected = 1;
|
||||
};
|
||||
|
||||
testContainsTrue = {
|
||||
expr = cidr.contains "10.0.0.0/8" "10.1.2.3";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testContainsFalse = {
|
||||
expr = cidr.contains "10.0.0.0/8" "192.168.1.1";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testContainsNetwork = {
|
||||
expr = cidr.contains "192.168.1.0/24" "192.168.1.0";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testContainsBroadcast = {
|
||||
expr = cidr.contains "192.168.1.0/24" "192.168.1.255";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testContainsEdgeFalse = {
|
||||
expr = cidr.contains "192.168.1.0/24" "192.168.2.0";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsSubnetOfTrue = {
|
||||
expr = cidr.isSubnetOf "10.0.0.0/8" "10.1.0.0/16";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsSubnetOfFalse = {
|
||||
expr = cidr.isSubnetOf "10.0.0.0/8" "192.168.0.0/16";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsSubnetOfSame = {
|
||||
expr = cidr.isSubnetOf "10.0.0.0/8" "10.0.0.0/8";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsSubnetOfLarger = {
|
||||
expr = cidr.isSubnetOf "10.1.0.0/16" "10.0.0.0/8";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testHostBasic = {
|
||||
expr = cidr.hostStr "192.168.1.0/24" 5;
|
||||
expected = "192.168.1.5";
|
||||
};
|
||||
|
||||
testHostZero = {
|
||||
expr = cidr.hostStr "192.168.1.0/24" 0;
|
||||
expected = "192.168.1.0";
|
||||
};
|
||||
|
||||
testHostLast = {
|
||||
expr = cidr.hostStr "192.168.1.0/24" 255;
|
||||
expected = "192.168.1.255";
|
||||
};
|
||||
|
||||
testSubnetFirst = {
|
||||
expr = cidr.format (cidr.subnet "192.168.0.0/24" 26 0);
|
||||
expected = "192.168.0.0/26";
|
||||
};
|
||||
|
||||
testSubnetSecond = {
|
||||
expr = cidr.format (cidr.subnet "192.168.0.0/24" 26 1);
|
||||
expected = "192.168.0.64/26";
|
||||
};
|
||||
|
||||
testSubnetLast = {
|
||||
expr = cidr.format (cidr.subnet "192.168.0.0/24" 26 3);
|
||||
expected = "192.168.0.192/26";
|
||||
};
|
||||
|
||||
testSubnetsCount = {
|
||||
expr = builtins.length (cidr.subnets "192.168.0.0/24" 26);
|
||||
expected = 4;
|
||||
};
|
||||
|
||||
testSubnetsStr = {
|
||||
expr = cidr.subnetsStr "192.168.0.0/24" 26;
|
||||
expected = [
|
||||
"192.168.0.0/26"
|
||||
"192.168.0.64/26"
|
||||
"192.168.0.128/26"
|
||||
"192.168.0.192/26"
|
||||
];
|
||||
};
|
||||
|
||||
testOverlapsTrue = {
|
||||
expr = cidr.overlaps "192.168.1.0/24" "192.168.0.0/16";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testOverlapsFalse = {
|
||||
expr = cidr.overlaps "192.168.1.0/24" "10.0.0.0/8";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testOverlapsAdjacent = {
|
||||
expr = cidr.overlaps "192.168.1.0/24" "192.168.2.0/24";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testPrefixForHosts100 = {
|
||||
expr = cidr.prefixForHosts 100;
|
||||
expected = 25;
|
||||
};
|
||||
|
||||
testPrefixForHosts254 = {
|
||||
expr = cidr.prefixForHosts 254;
|
||||
expected = 24;
|
||||
};
|
||||
|
||||
testPrefixForHosts1 = {
|
||||
expr = cidr.prefixForHosts 1;
|
||||
expected = 32;
|
||||
};
|
||||
|
||||
testPrefixForSize256 = {
|
||||
expr = cidr.prefixForSize 256;
|
||||
expected = 24;
|
||||
};
|
||||
|
||||
testPrefixForSize1 = {
|
||||
expr = cidr.prefixForSize 1;
|
||||
expected = 32;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user