31 lines
1.2 KiB
Go
31 lines
1.2 KiB
Go
package main
|
|
|
|
import "testing"
|
|
|
|
func TestNormalizeDNSTTListenDefault(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
input string
|
|
want string
|
|
migrated bool
|
|
}{
|
|
{name: "empty uses IPv4 default", input: "", want: "0.0.0.0:5300"},
|
|
{name: "whitespace uses IPv4 default", input: " ", want: "0.0.0.0:5300"},
|
|
{name: "legacy IPv6 wildcard migrates", input: "[::]:5300", want: "0.0.0.0:5300", migrated: true},
|
|
{name: "expanded legacy wildcard migrates", input: "[0:0:0:0:0:0:0:0]:5300", want: "0.0.0.0:5300", migrated: true},
|
|
{name: "explicit IPv4 remains", input: "192.0.2.10:53", want: "192.0.2.10:53"},
|
|
{name: "IPv4 wildcard remains", input: "0.0.0.0:5300", want: "0.0.0.0:5300"},
|
|
{name: "concrete IPv6 remains", input: "[2001:db8::10]:53", want: "[2001:db8::10]:53"},
|
|
{name: "IPv6 wildcard on custom port remains", input: "[::]:5301", want: "[::]:5301"},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, migrated := normalizeDNSTTListenDefault(tt.input)
|
|
if got != tt.want || migrated != tt.migrated {
|
|
t.Fatalf("normalizeDNSTTListenDefault(%q) = (%q, %v), want (%q, %v)", tt.input, got, migrated, tt.want, tt.migrated)
|
|
}
|
|
})
|
|
}
|
|
}
|