aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2023-05-10 17:08:59 +0200
committerGopher Robot <gobot@golang.org>2023-05-10 20:35:20 +0000
commit200a01ff5589e2b8eb8cebeb4dcf6469aceaab27 (patch)
tree6c2c7cf792703ad15132b13c7b644dd336febf80
parent1099644f5208c9e7911783c0103d5dad0a2021cd (diff)
downloadgo-200a01ff5589e2b8eb8cebeb4dcf6469aceaab27.tar.xz
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>
-rw-r--r--src/html/fuzz.go31
-rw-r--r--src/html/fuzz_test.go22
2 files changed, 22 insertions, 31 deletions
diff --git a/src/html/fuzz.go b/src/html/fuzz.go
deleted file mode 100644
index cd70f97106..0000000000
--- a/src/html/fuzz.go
+++ /dev/null
@@ -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
-}
diff --git a/src/html/fuzz_test.go b/src/html/fuzz_test.go
new file mode 100644
index 0000000000..ed15d8f270
--- /dev/null
+++ b/src/html/fuzz_test.go
@@ -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))
+ })
+}