36 lines
1001 B
Go
36 lines
1001 B
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
var testCases = []struct {
|
|
name string
|
|
str string
|
|
expected bool
|
|
}{
|
|
{"Well-formed IPv4 with port", "127.0.0.1:4443", true},
|
|
{"Well-formed IPv4 without port", "127.0.0.1", false},
|
|
{"Malformed IPv4 with port", "127..0.1:4443", false},
|
|
{"Malformed IPv4 without port", "127..0.1", false},
|
|
{"Well-formed IPv6 with port - 2", "[::1]:4443", true},
|
|
{"Well-formed IPv6 without port", "[fe80::1%25en0]", false},
|
|
{"Malformed IPv6 with port", "[::::1]:4443", false},
|
|
{"Malformed IPv6 without port", "[::::::::1]", false},
|
|
{"Malformed IPv6 : missing square brackets", "::::::::1:4443", false},
|
|
{"Well-formed DNS name with port", "toto.circl.lu:4443", true},
|
|
{"Well-formed DNS name without port", "toto.circl.lu", false},
|
|
{"Malformed DNS name with port", ".:4443", false},
|
|
}
|
|
|
|
func TestIsNet(t *testing.T) {
|
|
for _, tc := range testCases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
b, _ := isNet(tc.str)
|
|
if b != tc.expected {
|
|
t.Fail()
|
|
}
|
|
})
|
|
}
|
|
}
|