51 lines
2.8 KiB
Bash
51 lines
2.8 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
|
|
# shellcheck source=tests/lib/assert.sh
|
|
source "${ROOT_DIR}/tests/lib/assert.sh"
|
|
# shellcheck source=lib/common.sh
|
|
source "${ROOT_DIR}/lib/common.sh"
|
|
|
|
status_of() {
|
|
set +e
|
|
"$@" >/dev/null 2>&1
|
|
local rc=$?
|
|
set -e
|
|
printf '%s\n' "${rc}"
|
|
}
|
|
|
|
assert_status 0 "$(status_of validate_ipv4 '0.0.0.0')" 'validate_ipv4 should accept 0.0.0.0'
|
|
assert_status 0 "$(status_of validate_ipv4 '192.168.1.1')" 'validate_ipv4 should accept private address'
|
|
assert_status 0 "$(status_of validate_ipv4 '255.255.255.255')" 'validate_ipv4 should accept broadcast'
|
|
assert_status 1 "$(status_of validate_ipv4 '256.1.1.1')" 'validate_ipv4 should reject overflow octet'
|
|
assert_status 1 "$(status_of validate_ipv4 '1.2.3')" 'validate_ipv4 should reject short address'
|
|
assert_status 1 "$(status_of validate_ipv4 'abc')" 'validate_ipv4 should reject text'
|
|
assert_status 1 "$(status_of validate_ipv4 '')" 'validate_ipv4 should reject empty string'
|
|
|
|
assert_status 0 "$(status_of validate_ipv6 '::1')" 'validate_ipv6 should accept loopback'
|
|
assert_status 0 "$(status_of validate_ipv6 '2001:db8::1')" 'validate_ipv6 should accept compressed address'
|
|
assert_status 0 "$(status_of validate_ipv6 'fe80::1%eth0')" 'validate_ipv6 should accept scoped address'
|
|
assert_status 1 "$(status_of validate_ipv6 ':::1')" 'validate_ipv6 should reject malformed address'
|
|
assert_status 1 "$(status_of validate_ipv6 '1.2.3.4')" 'validate_ipv6 should reject ipv4 literal'
|
|
assert_status 1 "$(status_of validate_ipv6 '')" 'validate_ipv6 should reject empty string'
|
|
|
|
assert_status 0 "$(status_of validate_port '1')" 'validate_port should accept lower bound'
|
|
assert_status 0 "$(status_of validate_port '65535')" 'validate_port should accept upper bound'
|
|
assert_status 1 "$(status_of validate_port '0')" 'validate_port should reject zero'
|
|
assert_status 1 "$(status_of validate_port '65536')" 'validate_port should reject overflow'
|
|
assert_status 1 "$(status_of validate_port '-1')" 'validate_port should reject negative'
|
|
assert_status 1 "$(status_of validate_port 'abc')" 'validate_port should reject text'
|
|
|
|
assert_status 0 "$(status_of validate_proto 'tcp')" 'validate_proto should accept tcp'
|
|
assert_status 0 "$(status_of validate_proto 'udp')" 'validate_proto should accept udp'
|
|
assert_status 0 "$(status_of validate_proto 'both')" 'validate_proto should accept both'
|
|
assert_status 1 "$(status_of validate_proto 'icmp')" 'validate_proto should reject unsupported protocol'
|
|
|
|
assert_status 0 "$(status_of validate_ipver '4')" 'validate_ipver should accept 4'
|
|
assert_status 0 "$(status_of validate_ipver '6')" 'validate_ipver should accept 6'
|
|
assert_status 0 "$(status_of validate_ipver 'both')" 'validate_ipver should accept both'
|
|
assert_status 1 "$(status_of validate_ipver '5')" 'validate_ipver should reject unsupported family'
|
|
|
|
pass 'test_common.sh'
|