aboutsummaryrefslogtreecommitdiff
path: root/src/html/fuzz.go
blob: ecaf4f9069416b14c27f28c49618a70e1315c110 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// 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
// +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
}