package core import ( "testing" "unicode/utf8" ) // 行为验证(不只是静态断言):utf8Clip 对中文截断后必须是合法 UTF-8。 func TestUtf8ClipBehaviour(t *testing.T) { c := kernelTestCore(t) ps := c.Plugins() src, err := readBundledChannels(t) if err != nil { t.Fatal(err) } if err := ps.LoadSource("channels", src); err != nil { t.Fatal(err) } s := "能力元数据源 5.6MB 超过内核 4MiB 响应上限(刻意的堆保护,不为此放宽)—— 能力增强不可用,已退回兜底表" for _, n := range []int{10, 40, 119, 120, 121, 400} { out, err := ps.Call("channels", "__utf8_clip_probe", map[string]interface{}{"s": s, "n": n}) if err != nil { t.Fatal(err) } got, _ := jsonOf(t, out)["out"].(string) if !utf8.ValidString(got) { t.Errorf("n=%d 结果不是合法 UTF-8: %q", n, got) } if n < len(s) && len(got) > n { t.Errorf("n=%d 结果超出字节上限: %d", n, len(got)) } if n >= len(s) && got != s { t.Errorf("n=%d 未超长时应原样返回", n) } t.Logf("n=%-4d → %q (valid=%v, bytes=%d)", n, got, utf8.ValidString(got), len(got)) } }