2024-07-15 21:00:14 +00:00
|
|
|
package netutil
|
2023-10-25 22:29:51 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestIsTCPv4Addr(t *testing.T) {
|
|
|
|
f := func(addr string, resultExpected bool) {
|
|
|
|
t.Helper()
|
2024-07-15 21:00:14 +00:00
|
|
|
|
2023-10-25 22:29:51 +00:00
|
|
|
result := isTCPv4Addr(addr)
|
|
|
|
if result != resultExpected {
|
|
|
|
t.Fatalf("unexpected result for isIPv4Addr(%q); got %v; want %v", addr, result, resultExpected)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// empty addr
|
|
|
|
f("", false)
|
|
|
|
|
|
|
|
// too small number of octets
|
|
|
|
f("foobar", false)
|
|
|
|
f("1", false)
|
|
|
|
f("1.2", false)
|
|
|
|
f("1.2.3", false)
|
|
|
|
f("1.2.3.", false)
|
|
|
|
|
|
|
|
// non-numeric octets
|
|
|
|
f("foo.bar.baz.aaa", false)
|
|
|
|
|
|
|
|
// non-numeric last value
|
|
|
|
f("1.2.3.foo", false)
|
|
|
|
|
|
|
|
// negative value
|
|
|
|
f("1.2.3.-4", false)
|
|
|
|
|
|
|
|
// missing port
|
|
|
|
f("1.2.3.4", false)
|
|
|
|
|
|
|
|
// invalid port
|
|
|
|
f("1.2.3.4:foo", false)
|
|
|
|
|
|
|
|
// too big octet
|
|
|
|
f("1.2.3.444:5", false)
|
|
|
|
|
|
|
|
// too big port
|
|
|
|
f("1.2.3.4:152344", false)
|
|
|
|
|
|
|
|
// normal TCPv4 addr
|
|
|
|
f("1.2.3.4:5", true)
|
|
|
|
f("0.0.0.0:80", true)
|
|
|
|
f("1.2.3.4:65535", true)
|
|
|
|
}
|