a295a549

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

ical-recurrence: test that an instance in a daylight saving time gap is ignored

The TODO in ICal.Recurrence quotes this requirement but it is not
implemented.

On the 27th of March 2022 the local time in Zurich jumps from 02:00 to
03:00, so 02:30 does not exist on that day and a daily 02:30 event has
no instance there.  One is produced anyway, and resolveLocalTime then
maps it to 00:30Z, which unresolves to 01:30 local: an hour that
appears nowhere in the calendar.

The ambiguous direction, where a local time occurs twice at the end of
daylight saving time, happens to behave sensibly already by picking the
earlier offset.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 1m57s 1s 1s 1m59s 1m57s
Eval 2m35s 18s 18s 2m53s 36s
Build 2m53s 3m03s - - 10m02s
Suite 1m57s 3m23s - - 6h42m01s

Timeline

0s2m40s2m50s12m30s12m40s12m50s13m13m10s