diff --git a/internal/charset/charset_test.go b/internal/charset/charset_test.go
index d9b8603..a6e0587 100644
--- a/internal/charset/charset_test.go
+++ b/internal/charset/charset_test.go
@@ -55,3 +55,58 @@ func TestFromPlain(t *testing.T) {
}
}
}
+
+func FuzzFromPlain(f *testing.F) {
+ samples := [][]byte{
+ []byte{0xe6, 0xf8, 0xe5, 0x85, 0x85},
+ []byte{0xe6, 0xf8, 0xe5},
+ []byte("æøå"),
+ }
+
+ for _, s := range samples {
+ f.Add(s)
+ }
+
+ f.Fuzz(func(t *testing.T, d []byte) {
+ if charset := FromPlain(d); charset == "" {
+ t.Skip()
+ }
+ })
+}
+func FuzzFromHTML(f *testing.F) {
+ samples := []string{
+ ``,
+ ``,
+ ``,
+ ``,
+ ``,
+ ``,
+ ``,
+ ``,
+ }
+
+ for _, s := range samples {
+ f.Add([]byte(s))
+ }
+
+ f.Fuzz(func(t *testing.T, d []byte) {
+ if charset := FromHTML(d); charset == "" {
+ t.Skip()
+ }
+ })
+}
+func FuzzFromXML(f *testing.F) {
+ samples := []string{
+ ``,
+ }
+
+ for _, s := range samples {
+ f.Add([]byte(s))
+ }
+
+ f.Fuzz(func(t *testing.T, d []byte) {
+ if charset := FromXML(d); charset == "" {
+ t.Skip()
+ }
+ })
+}