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) }) }