]> Cypherpunks repositories - gostls13.git/commitdiff
html: convert fuzz test to native Go fuzzing
authorTobias Klauser <tklauser@distanz.ch>
Wed, 10 May 2023 15:08:59 +0000 (17:08 +0200)
committerGopher Robot <gobot@golang.org>
Wed, 10 May 2023 20:35:20 +0000 (20:35 +0000)
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>

src/html/fuzz.go [deleted file]
src/html/fuzz_test.go [new file with mode: 0644]

diff --git a/src/html/fuzz.go b/src/html/fuzz.go
deleted file mode 100644 (file)
index cd70f97..0000000
+++ /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 (file)
index 0000000..ed15d8f
--- /dev/null
@@ -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))
+       })
+}