You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

38 lines
1.1 KiB

  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. // Build only when actually fuzzing
  14. //go:build gofuzz
  15. // +build gofuzz
  16. package expfmt
  17. import "bytes"
  18. // Fuzz text metric parser with with github.com/dvyukov/go-fuzz:
  19. //
  20. // go-fuzz-build github.com/prometheus/common/expfmt
  21. // go-fuzz -bin expfmt-fuzz.zip -workdir fuzz
  22. //
  23. // Further input samples should go in the folder fuzz/corpus.
  24. func Fuzz(in []byte) int {
  25. parser := TextParser{}
  26. _, err := parser.TextToMetricFamilies(bytes.NewReader(in))
  27. if err != nil {
  28. return 0
  29. }
  30. return 1
  31. }