73581d8a

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

ical-recurrence: test that a date-valued RecurrenceDateTimes does not fail unfixably

Unlike DTEND, the value type of RDATE is not constrained to that of
DTSTART: RFC 5545 section 3.8.5.2 allows DATE and PERIOD as well as the
default DATE-TIME.

Combined with a DTEND, a date-valued RDATE reaches computeNewEnd with a
DateTimeStartDate as the new start and a DateTimeStartDateTime as the
original one, which is an unfixable StartStartMismatch.  That error is
documented in ICal.Recurrence.Class as an internal error that should not
happen, yet it is reachable from ordinary parsed input and it halts
recurrence for the whole calendar.

Reading the added instance as an all-day one is what its value type
says.  Coercing it to a time on that day would be defensible too;
failing the whole calendar is not.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 18s 1s 1s 19s 18s
Eval 3m55s 11s 11s 4m07s 3m35s
Build 1h39m45s 1m54s - - 1h36m06s
Suite 18s 2m08s - - 6h29m51s

Timeline

0s4m1h39m1h40m1h40m1h40m1h40m1h40m