TestTimeTZ#test_gen_Europe_Lisbon_111 fails with recent tzdata
In Fedora, tzdata were recently updated to tzdata-2014g-1.fc22 . Since that update, one test case fails:
$ make test-all TESTS=test/ruby/test_time_tz.rb ... snip ... [ 79/123] TestTimeTZ#test_gen_Europe_Lisbon_111 = 0.00 s 1) Failure: TestTimeTZ#test_gen_Europe_Lisbon_111 [/builddir/build/BUILD/ruby-2.2.0-r47594/test/ruby/test_time_tz.rb:250]: TZ=Europe/Lisbon Time.utc(1912, 1, 1, 0, 36, 31).localtime. <"1911-12-31 23:59:59 -0036"> expected but was <"1911-12-31 23:59:46 -0036">.
This is what Red Hat's tzdata maintainer says about that change :
tl;dr: Ruby will have to fix its test suite.
I expect that this comes from Ruby-internal test suite that expects Europe/Lisbon on some offset, and is surprised that it's actually a couple seconds off. But that far back, time didn't use to be split to zones like today, and every location kept its own local time. I think that most stamps in zoneinfo were calculated from GMT coordinates of the city (which itself is a somewhat fuzzy notion), and are corrected based on historical sources only retroactively, when someone gets to it, or when someone complains. That's what happened here--Paul Eggert got to Lisbon.
It seems like Europe/Brussels might be a good choice for this sort of test, because it's local mean time has been based on an official document since 1997.
Could you please make the test case compatible with recent tzdata? Thanks.
Updated by vo.x (Vit Ondruch) over 7 years ago
- Status changed from Closed to Open
- Assignee set to akr (Akira Tanaka)
Sorry but it does not work for me. However, the error is now different:
1) Failure: TestTimeTZ#test_gen_lisbon_111 [/builddir/build/BUILD/ruby-2.2.0-r47902/test/ruby/test_time_tz.rb:396]: Expected  to include [true, true, true, true, true].