blob: dc2eedeefcac4ce1e383ec529c1043e6f0c6bad2 [file] [log] [blame]
Matthias Andreas Benkard832a54e2019-01-29 09:27:38 +01001// Copyright 2014 The Prometheus Authors
2// Licensed under the Apache License, Version 2.0 (the "License");
3// you may not use this file except in compliance with the License.
4// You may obtain a copy of the License at
5//
6// http://www.apache.org/licenses/LICENSE-2.0
7//
8// Unless required by applicable law or agreed to in writing, software
9// distributed under the License is distributed on an "AS IS" BASIS,
10// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11// See the License for the specific language governing permissions and
12// limitations under the License.
13
14// Build only when actually fuzzing
15// +build gofuzz
16
17package expfmt
18
19import "bytes"
20
21// Fuzz text metric parser with with github.com/dvyukov/go-fuzz:
22//
23// go-fuzz-build github.com/prometheus/common/expfmt
24// go-fuzz -bin expfmt-fuzz.zip -workdir fuzz
25//
26// Further input samples should go in the folder fuzz/corpus.
27func Fuzz(in []byte) int {
28 parser := TextParser{}
29 _, err := parser.TextToMetricFamilies(bytes.NewReader(in))
30
31 if err != nil {
32 return 0
33 }
34
35 return 1
36}