b084e875

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

ical-recurrence: chunk golden occurrences by unfolded line

Two things made the golden format lossy.

renderEventOccurrence wrote nothing at all for an absent property while
parseEventOccurrences read the file back in fixed two-line chunks, so an
occurrence without a DTSTART or without a DTEND/DURATION shifted every
occurrence after it.  Write an empty line for an absent property, which
is what the parser already reads as absent.

Chunking on raw lines was also wrong on its own: a content line longer
than 75 octets is rendered folded over several raw lines, so a single
long property, a TZID for instance, was read as several occurrences.
Unfold first with parseUnfoldedLines and chunk the unfolded lines.

The existing golden files are unaffected, because every occurrence in
them has both a start and an end and none of their lines are long enough
to be folded.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 4s 0s 0s 5s 4s
Eval 5s 14s 14s 19s 0s
Build - - - - 6m00s
Suite 4s 15s - - 6m05s