aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/tool/flags_fuzz.go
blob: 3f0bb010a8084f03347d667cbf7dce7b267f288a (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
// Copyright 2020 syzkaller project authors. All rights reserved.
// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.

package tool

import (
	"reflect"
	"strings"
)

func FuzzParseFlags(data []byte) int {
	flags, err := deserializeFlags(string(data))
	if err != nil {
		return 0
	}
	value := serializeFlags(flags)
	if strings.IndexByte(value, ' ') != -1 {
		panic("flags contain space")
	}
	flags1, err := deserializeFlags(value)
	if err != nil {
		panic(err)
	}
	if !reflect.DeepEqual(flags, flags1) {
		panic("changed")
	}
	return 1
}