Skip to content

Commit

Permalink
html: add a Fuzz function
Browse files Browse the repository at this point in the history
Adds a sample Fuzz test function to package html based on
https://github.com/dvyukov/go-fuzz-corpus/blob/master/stdhtml/main.go

Updates #19109
Updates #31309

Change-Id: I8c49fff8f70fc8a8813daf1abf0044752003adbb
Reviewed-on: https://go-review.googlesource.com/c/go/+/174301
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
  • Loading branch information
elwinar authored and bradfitz committed Apr 30, 2019
1 parent 12aec55 commit 4ad1355
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions src/html/fuzz.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// 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.

// +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
}

0 comments on commit 4ad1355

Please sign in to comment.