mirror of
https://github.com/golang/go
synced 2024-11-26 19:51:17 -07:00
html: convert fuzz test to native Go fuzzing
Convert the existing gofuzz based fuzz test to a testing.F based fuzz test. Change-Id: Ieae69ba7fb17bd54d95c7bb2f4ed04c323c9f15f Reviewed-on: https://go-review.googlesource.com/c/go/+/494195 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com> Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
This commit is contained in:
parent
1099644f52
commit
200a01ff55
@ -1,31 +0,0 @@
|
||||
// Copyright 2019 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
//go:build gofuzz
|
||||
|
||||
package html
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func Fuzz(data []byte) int {
|
||||
v := string(data)
|
||||
|
||||
e := EscapeString(v)
|
||||
u := UnescapeString(e)
|
||||
if v != u {
|
||||
fmt.Printf("v = %q\n", v)
|
||||
fmt.Printf("e = %q\n", e)
|
||||
fmt.Printf("u = %q\n", u)
|
||||
panic("not equal")
|
||||
}
|
||||
|
||||
// As per the documentation, this isn't always equal to v, so it makes
|
||||
// no sense to check for equality. It can still be interesting to find
|
||||
// panics in it though.
|
||||
EscapeString(UnescapeString(v))
|
||||
|
||||
return 0
|
||||
}
|
22
src/html/fuzz_test.go
Normal file
22
src/html/fuzz_test.go
Normal file
@ -0,0 +1,22 @@
|
||||
// Copyright 2019 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package html
|
||||
|
||||
import "testing"
|
||||
|
||||
func FuzzEscapeUnescape(f *testing.F) {
|
||||
f.Fuzz(func(t *testing.T, v string) {
|
||||
e := EscapeString(v)
|
||||
u := UnescapeString(e)
|
||||
if u != v {
|
||||
t.Errorf("EscapeString(%q) = %q, UnescapeString(%q) = %q, want %q", v, e, e, u, v)
|
||||
}
|
||||
|
||||
// As per the documentation, this isn't always equal to v, so it makes
|
||||
// no sense to check for equality. It can still be interesting to find
|
||||
// panics in it though.
|
||||
EscapeString(UnescapeString(v))
|
||||
})
|
||||
}
|
Loading…
Reference in New Issue
Block a user