24 lines
733 B
Go
24 lines
733 B
Go
package ical
|
|||
|
|
|
||
|
|
import "testing"
|
||
|
|
|
||
|
|
func FuzzParse(f *testing.F) {
|
||
|
|
f.Add("BEGIN:VCALENDAR\r\nVERSION:2.0\r\nBEGIN:VEVENT\r\nUID:test-1\r\nDTSTART:20260101T120000Z\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n")
|
||
|
|
f.Add("BEGIN:VEVENT\nUID:no-crlf\nEND:VEVENT\n")
|
||
|
|
f.Add("BEGIN:VEVENT\r\nUID:folded\r\nDESCRIPTION:line one\r\n continued\r\nEND:VEVENT\r\n")
|
||
|
|
f.Add("")
|
||
|
|
f.Add("BEGIN:VEVENT\r\nEND:VEVENT\r\n")
|
||
|
|
f.Add("not an ical at all")
|
||
|
|
f.Add("BEGIN:VEVENT\r\nDTSTART:not-a-real-date\r\nUID:x\r\nEND:VEVENT\r\n")
|
||
|
|
f.Add("BEGIN:VEVENT\r\n:\r\nUID:x\r\nEND:VEVENT\r\n")
|
||
|
|
|
||
|
|
f.Fuzz(func(t *testing.T, data string) {
|
||
|
|
defer func() {
|
||
|
|
if r := recover(); r != nil {
|
||
|
|
t.Fatalf("Parse panicked on input %q: %v", data, r)
|
||
|
|
}
|
||
|
|
}()
|
||
|
|
Parse(data)
|
||
|
|
})
|
||
|
|
}
|