Moar parsers
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
package parser
|
||||
|
||||
import (
|
||||
"net/netip"
|
||||
"reflect"
|
||||
"sort"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestParseHosts(t *testing.T) {
|
||||
test := `##
|
||||
const testHosts = `##
|
||||
# Host Database
|
||||
#
|
||||
# localhost is used to configure the loopback interface
|
||||
@@ -20,15 +20,16 @@ func TestParseHosts(t *testing.T) {
|
||||
ff00::1 multicast
|
||||
1.2.3.4
|
||||
`
|
||||
want := []string{"broadcasthost", "dragon", "dragon.local", "dragon.maze.network", "localhost", "multicast"}
|
||||
|
||||
parsed, ignored, err := ParseDomains(strings.NewReader(test))
|
||||
func TestParseHosts(t *testing.T) {
|
||||
parsed, ignored, err := ParseDomains(strings.NewReader(testHosts))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
return
|
||||
}
|
||||
|
||||
sort.Strings(parsed)
|
||||
want := []string{"broadcasthost", "dragon", "dragon.local", "dragon.maze.network", "localhost", "multicast"}
|
||||
if !reflect.DeepEqual(parsed, want) {
|
||||
t.Errorf("expected ParseDomains(hosts) to return %v, got %v", want, parsed)
|
||||
}
|
||||
@@ -36,3 +37,27 @@ ff00::1 multicast
|
||||
t.Errorf("expected 1 ignored, got %d", ignored)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseHostsNetworks(t *testing.T) {
|
||||
parsed, ignored, err := ParseNetworks(strings.NewReader(testHosts))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
return
|
||||
}
|
||||
|
||||
sort.SliceStable(parsed, func(i, j int) bool {
|
||||
return parsed[i].Addr().Less(parsed[j].Addr())
|
||||
})
|
||||
want := []netip.Prefix{
|
||||
netip.MustParsePrefix("127.0.0.1/32"),
|
||||
netip.MustParsePrefix("255.255.255.255/32"),
|
||||
netip.MustParsePrefix("::1/128"),
|
||||
netip.MustParsePrefix("ff00::1/128"),
|
||||
}
|
||||
if !reflect.DeepEqual(parsed, want) {
|
||||
t.Errorf("expected ParseNetworks(hosts) to return %v, got %v", want, parsed)
|
||||
}
|
||||
if ignored != 1 {
|
||||
t.Errorf("expected 1 ignored, got %d", ignored)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user