1// 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} 37