blob: 5107d75d3c3d0438a619d02a3a21ef7156a93582 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#!/bin/bash
# Test: IPv4 address validation
. "$(dirname "$0")/../lib/setup.sh"
oneTimeTearDown() { rm -rf "${MOCK_ROOT:-}"; }
testIpv4ValidStandard() {
assertTrue "Standard private IP" "is_ipv4 '192.168.1.1'"
assertTrue "Class A private" "is_ipv4 '10.0.0.1'"
assertTrue "Class B private" "is_ipv4 '172.16.0.1'"
assertTrue "Google DNS" "is_ipv4 '8.8.8.8'"
assertTrue "All zeros" "is_ipv4 '0.0.0.0'"
assertTrue "All ones" "is_ipv4 '255.255.255.255'"
assertTrue "Simple IP" "is_ipv4 '1.2.3.4'"
}
testIpv4ValidCIDR() {
assertTrue "CIDR /8" "is_ipv4 '10.0.0.0/8'"
assertTrue "CIDR /24" "is_ipv4 '192.168.1.0/24'"
assertTrue "CIDR /32" "is_ipv4 '10.0.0.1/32'"
assertTrue "Default route" "is_ipv4 '0.0.0.0/0'"
}
testIpv4Invalid() {
assertFalse "Octet > 255" "is_ipv4 '256.1.1.1'"
assertFalse "Last octet > 255" "is_ipv4 '1.2.3.256'"
assertFalse "Not an IP" "is_ipv4 'not_an_ip'"
assertFalse "Empty string" "is_ipv4 ''"
assertFalse "Only 3 octets" "is_ipv4 '192.168.1'"
assertFalse "5 octets" "is_ipv4 '192.168.1.1.1'"
assertFalse "CIDR > 32" "is_ipv4 '192.168.1.1/33'"
assertFalse "IPv6 loopback" "is_ipv4 '::1'"
assertFalse "IPv6 link-local" "is_ipv4 'fe80::1'"
assertFalse "Domain name" "is_ipv4 'example.com'"
}
. shunit2
|