Fuzz Unescape.

This commit is contained in:
Nuno Cruces 2022-03-26 15:52:14 +00:00
parent ea8c939434
commit 072d179944

View file

@ -1,6 +1,8 @@
package zenutil package zenutil
import "testing" import (
"testing"
)
func TestUnescape(t *testing.T) { func TestUnescape(t *testing.T) {
tests := []struct { tests := []struct {
@ -31,3 +33,33 @@ func TestUnescape(t *testing.T) {
} }
} }
} }
func FuzzUnescape(f *testing.F) {
f.Add(`abc`)
f.Add(`ab\c`)
f.Add(`a\bc`)
f.Add(`abc\f`)
f.Add(`abc\n`)
f.Add(`abc\r`)
f.Add(`abc\t`)
f.Add(`abc\v`)
f.Add(`a\1c`)
f.Add(`a\12c`)
f.Add(`a\123c`)
f.Add(`a\1\b`)
f.Add(`a\12\b`)
f.Add(`a\123\b`)
f.Add(`abc\1`)
f.Add(`abc\12`)
f.Add(`abc\123`)
f.Fuzz(func(t *testing.T, e string) {
u := Unescape(e)
switch {
case u == e:
return
case len(u) < len(e):
return
}
t.Errorf("Unescape(%q) = %q", e, u)
})
}