8157792: After Integrating tzdata2016d the test/sun/util/calendar/zi/TestZoneInfo310.java fails for "Asia/Oral" and "Asia/Qyzylorda" Timezones

Reviewed-by: peytoia
This commit is contained in:
Masayoshi Okutsu 2016-08-30 14:16:16 +09:00
parent 5ee89f9f22
commit 5f5e297c52
2 changed files with 19 additions and 10 deletions

View File

@ -22,11 +22,15 @@
*/
/*
*@test
*@bug 8007572 8008161
*@summary Test whether the TimeZone generated from JSR310 tzdb is the same
*as the one from the tz data from javazic
* @test
* @bug 8007572 8008161 8157792
* @summary Test whether the TimeZone generated from JSR310 tzdb is the same
* as the one from the tz data from javazic
* @modules java.base/sun.util.calendar
* @build BackEnd Checksum DayOfWeek Gen GenDoc Main Mappings Month
* Rule RuleDay RuleRec Simple TestZoneInfo310 Time Timezone
* TzIDOldMapping Zone ZoneInfoFile ZoneInfoOld ZoneRec Zoneinfo
* @run main TestZoneInfo310
*/
import java.io.File;
@ -164,10 +168,6 @@ public class TestZoneInfo310 {
}
for (String zid : zids_new) {
if (zid.equals("Asia/Oral") || zid.equals("Asia/Qyzylorda")) {
// JDK-8157792 tracking this issue
continue;
}
ZoneInfoOld zi = toZoneInfoOld(TimeZone.getTimeZone(zid));
ZoneInfoOld ziOLD = (ZoneInfoOld)ZoneInfoOld.getTimeZone(zid);
if (! zi.equalsTo(ziOLD)) {

View File

@ -373,6 +373,7 @@ class Zoneinfo {
tz.getOffsetIndex(zrec.getGmtOffset());
int lastGmtOffsetValue = -1;
ZoneRec prevzrec = null;
int currentSave = 0;
boolean usedZone;
for (int zindex = 0; zindex < zone.size(); zindex++) {
@ -441,6 +442,15 @@ class Zoneinfo {
currentSave);
if (zrec.hasUntil()) {
if (transition >= zrec.getUntilTime(currentSave)) {
// If the GMT offset changed from the previous one,
// record fromTime as a transition.
if (!fromTimeUsed && prevzrec != null
&& gmtOffset != prevzrec.getGmtOffset()) {
tz.addTransition(fromTime,
tz.getOffsetIndex(gmtOffset+currentSave),
tz.getDstOffsetIndex(currentSave));
fromTimeUsed = true; // for consistency
}
break year_loop;
}
}
@ -452,8 +462,6 @@ class Zoneinfo {
if (fromTime != minTime) {
int prevsave;
ZoneRec prevzrec = zone.get(zindex - 1);
// See if until time in the previous
// ZoneRec is the same thing as the
// local time in the next rule.
@ -555,6 +563,7 @@ class Zoneinfo {
fromYear = zrec.getUntilYear();
year = zrec.getUntilYear();
}
prevzrec = zrec;
}
if (tz.getDSTType() == Timezone.UNDEF_DST) {