39 lines
708 B
Go
39 lines
708 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"net"
|
|
"testing"
|
|
)
|
|
|
|
func TestParseRange(t *testing.T) {
|
|
expected := []int{0, 1, 2, 6}
|
|
actual := parseRange("0-2,-5,6,-7-7,1, 11", 10)
|
|
if fmt.Sprint(expected) != fmt.Sprint(actual) {
|
|
t.Errorf("unexpected %#v\n", actual)
|
|
}
|
|
}
|
|
|
|
func TestParseIP(t *testing.T) {
|
|
var ip net.IP
|
|
if err := ip.UnmarshalText([]byte("127.0.0.1")); err != nil {
|
|
t.Error(err)
|
|
}
|
|
if ip.To4() == nil {
|
|
t.Error("Failed to parse ipv4")
|
|
}
|
|
if ip.To16() == nil {
|
|
t.Error("Failed to parse as ipv6")
|
|
}
|
|
|
|
if err := ip.UnmarshalText([]byte("::1")); err != nil {
|
|
t.Error(err)
|
|
}
|
|
if ip.To16() == nil {
|
|
t.Error("Failed to parse ipv6")
|
|
}
|
|
if ip.To4() != nil {
|
|
t.Error("ipv6 parsed as ipv4")
|
|
}
|
|
}
|