< prev index next >
test/jdk/sun/util/calendar/zi/TestZoneInfo310.java
Print this page
rev 55794 : [mq]: 8212970
*** 21,31 ****
* questions.
*/
/*
* @test
! * @bug 8007572 8008161 8157792 8224560
* @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:+open
* @build BackEnd Checksum DayOfWeek Gen GenDoc Main Mappings Month
* Rule RuleDay RuleRec Simple TestZoneInfo310 Time Timezone
--- 21,31 ----
* questions.
*/
/*
* @test
! * @bug 8007572 8008161 8157792 8212970 8224560
* @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:+open
* @build BackEnd Checksum DayOfWeek Gen GenDoc Main Mappings Month
* Rule RuleDay RuleRec Simple TestZoneInfo310 Time Timezone
*** 44,77 ****
public class TestZoneInfo310 {
public static void main(String[] args) throws Throwable {
String TESTDIR = System.getProperty("test.dir", ".");
! String SRCDIR = System.getProperty("test.src", ".");
! String tzdir = SRCDIR + File.separator + "tzdata";
! String tzfiles = "africa antarctica asia australasia europe northamerica pacificnew southamerica backward etcetera systemv";
! String jdk_tzdir = SRCDIR + File.separator + "tzdata_jdk";
! String jdk_tzfiles = "gmt jdk11_backward";
String zidir = TESTDIR + File.separator + "zi";
File fZidir = new File(zidir);
if (!fZidir.exists()) {
fZidir.mkdirs();
}
Matcher m = Pattern.compile("tzdata(?<ver>[0-9]{4}[A-z])")
! .matcher(new String(Files.readAllBytes(Paths.get(tzdir, "VERSION")), "ascii"));
String ver = m.find() ? m.group("ver") : "NULL";
ArrayList<String> alist = new ArrayList<>();
alist.add("-V");
alist.add(ver);
alist.add("-d");
alist.add(zidir);
for (String f : tzfiles.split(" ")) {
! alist.add(tzdir + File.separator + f);
! }
! for (String f : jdk_tzfiles.split(" ")) {
! alist.add(jdk_tzdir + File.separator + f);
}
System.out.println("Compiling tz files!");
Main.main(alist.toArray(new String[alist.size()]));
//////////////////////////////////
--- 44,72 ----
public class TestZoneInfo310 {
public static void main(String[] args) throws Throwable {
String TESTDIR = System.getProperty("test.dir", ".");
! Path tzdir = Paths.get(System.getProperty("test.root"),
! "..", "..", "make", "data", "tzdata");
! String tzfiles = "africa antarctica asia australasia europe northamerica pacificnew southamerica backward etcetera systemv gmt jdk11_backward";
String zidir = TESTDIR + File.separator + "zi";
File fZidir = new File(zidir);
if (!fZidir.exists()) {
fZidir.mkdirs();
}
Matcher m = Pattern.compile("tzdata(?<ver>[0-9]{4}[A-z])")
! .matcher(new String(Files.readAllBytes(tzdir.resolve("VERSION")), "ascii"));
String ver = m.find() ? m.group("ver") : "NULL";
ArrayList<String> alist = new ArrayList<>();
alist.add("-V");
alist.add(ver);
alist.add("-d");
alist.add(zidir);
for (String f : tzfiles.split(" ")) {
! alist.add(tzdir.resolve(f).toString());
}
System.out.println("Compiling tz files!");
Main.main(alist.toArray(new String[alist.size()]));
//////////////////////////////////
*** 172,184 ****
ZoneInfoOld ziOLD = (ZoneInfoOld)ZoneInfoOld.getTimeZone(zid);
/*
* Temporary ignoring the failing TimeZones which are having zone
* rules defined till year 2037 and/or above and have negative DST
* save time in IANA tzdata. This bug is tracked via JDK-8223388.
*/
! if (zid.equals("Africa/Casablanca") || zid.equals("Africa/El_Aaiun")
! || zid.equals("Asia/Tehran") || zid.equals("Iran")) {
continue;
}
if (! zi.equalsTo(ziOLD)) {
System.out.println(zi.diffsTo(ziOLD));
throw new RuntimeException(" FAILED: " + zid);
--- 167,199 ----
ZoneInfoOld ziOLD = (ZoneInfoOld)ZoneInfoOld.getTimeZone(zid);
/*
* Temporary ignoring the failing TimeZones which are having zone
* rules defined till year 2037 and/or above and have negative DST
* save time in IANA tzdata. This bug is tracked via JDK-8223388.
+ *
+ * These are the zones/rules that employ negative DST in vanguard
+ * format (as of 2019a):
+ *
+ * - Rule "Eire"
+ * - Rule "Morocco"
+ * - Rule "Namibia"
+ * - Zone "Europe/Prague"
+ *
+ * Tehran/Iran rule has rules beyond 2037, in which javazic assumes
+ * to be the last year. Thus javazic's rule is based on year 2037
+ * (Mar 20th/Sep 20th are the cutover dates), while the real rule
+ * has year 2087 where Mar 21st/Sep 21st are the cutover dates.
*/
! if (zid.equals("Africa/Casablanca") || // uses "Morocco" rule
! zid.equals("Africa/El_Aaiun") || // uses "Morocco" rule
! zid.equals("Africa/Windhoek") || // uses "Namibia" rule
! zid.equals("Eire") ||
! zid.equals("Europe/Bratislava") || // link to "Europe/Prague"
! zid.equals("Europe/Dublin") || // uses "Eire" rule
! zid.equals("Europe/Prague") ||
! zid.equals("Asia/Tehran") || // last rule mismatch
! zid.equals("Iran")) { // last rule mismatch
continue;
}
if (! zi.equalsTo(ziOLD)) {
System.out.println(zi.diffsTo(ziOLD));
throw new RuntimeException(" FAILED: " + zid);
< prev index next >