37 lines
1.0 KiB
Go
37 lines
1.0 KiB
Go
|
package config
|
||
|
|
||
|
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},
|
||
|
{"Localhost with port", "localhost:4443", true},
|
||
|
}
|
||
|
|
||
|
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()
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
}
|