github.com/geraldss/go/src@v0.0.0-20210511222824-ac7d0ebfc235/html/fuzz.go (about)

     1  // Copyright 2019 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // +build gofuzz
     6  
     7  package html
     8  
     9  import (
    10  	"fmt"
    11  )
    12  
    13  func Fuzz(data []byte) int {
    14  	v := string(data)
    15  
    16  	e := EscapeString(v)
    17  	u := UnescapeString(e)
    18  	if v != u {
    19  		fmt.Printf("v = %q\n", v)
    20  		fmt.Printf("e = %q\n", e)
    21  		fmt.Printf("u = %q\n", u)
    22  		panic("not equal")
    23  	}
    24  
    25  	// As per the documentation, this isn't always equal to v, so it makes
    26  	// no sense to check for equality. It can still be interesting to find
    27  	// panics in it though.
    28  	EscapeString(UnescapeString(v))
    29  
    30  	return 0
    31  }