1
0
mirror of https://github.com/golang/go synced 2024-11-23 00:30:07 -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:
Tobias Klauser 2023-05-10 17:08:59 +02:00 committed by Gopher Robot
parent 1099644f52
commit 200a01ff55
2 changed files with 22 additions and 31 deletions

View File

@ -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
View 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))
})
}