| 12345678910111213141516171819202122232425262728293031 |
- // +build gofuzz
- package sdp
- // Fuzz implements a randomized fuzz test of the sdp
- // parser using go-fuzz.
- //
- // To run the fuzzer, first download go-fuzz:
- // `go get github.com/dvyukov/go-fuzz/...`
- //
- // Then build the testing package:
- // `go-fuzz-build`
- //
- // And run the fuzzer on the corpus:
- // `go-fuzz`
- func Fuzz(data []byte) int {
- // Check that unmarshalling any byte slice does not panic.
- var sd SessionDescription
- if err := sd.Unmarshal(data); err != nil {
- return 0
- }
- // Check that we can marshal anything we unmarshalled.
- _, err := sd.Marshal()
- if err != nil {
- panic("failed to marshal") // nolint
- }
- // It'd be nice to check that if we round trip Marshal then Unmarshal,
- // we get the original back. Right now, though, we frequently don't,
- // and we'd need to fix that first.
- return 1
- }
|