package router import ( "reflect" "testing" ) // TestParseTrustedProxies 覆盖:合法 CIDR/IP/localhost、空白容忍、空项、非法条目跳过 func TestParseTrustedProxies(t *testing.T) { cases := []struct { name string in string want []string }{ {"未配置", "", nil}, {"单个网段", "172.19.0.0/16", []string{"172.19.0.0/16"}}, // 真实事故:尾随空格曾导致 invalid CIDR 整进程退出 {"尾随空格", "172.19.0.0/16 ", []string{"172.19.0.0/16"}}, {"两侧空白与空项", " 172.19.0.0/16 , 10.0.0.5 ,", []string{"172.19.0.0/16", "10.0.0.5"}}, {"单个 IP", "10.0.0.5", []string{"10.0.0.5"}}, {"localhost", "localhost", []string{"localhost"}}, {"非法条目跳过", "172.19.0.0/16,bad-cidr", []string{"172.19.0.0/16"}}, {"全部非法", "bad,,worse", nil}, } for _, c := range cases { t.Run(c.name, func(t *testing.T) { got := parseTrustedProxies(c.in) if !reflect.DeepEqual(got, c.want) { t.Errorf("parseTrustedProxies(%q) = %v, want %v", c.in, got, c.want) } }) } }