test/sun/util/calendar/zi/TestZoneInfo310.java

Print this page




  51         if (!fZidir.exists()) {
  52             fZidir.mkdirs();
  53         }
  54         Matcher m = Pattern.compile("tzdata(?<ver>[0-9]{4}[A-z])")
  55                            .matcher(new String(Files.readAllBytes(Paths.get(tzdir, "VERSION")), "ascii"));
  56         String ver = m.find() ? m.group("ver") : "NULL";
  57 
  58         ArrayList<String> alist = new ArrayList<>();
  59         alist.add("-V");
  60         alist.add(ver);
  61         alist.add("-d");
  62         alist.add(zidir);
  63         for (String f : tzfiles.split(" ")) {
  64             alist.add(tzdir + File.separator + f);
  65         }
  66         for (String f : jdk_tzfiles.split(" ")) {
  67             alist.add(jdk_tzdir + File.separator + f);
  68         }
  69         System.out.println("Compiling tz files!");
  70         Main.main(alist.toArray(new String[alist.size()]));
  71         //////////////////////////////////
  72 

  73         System.out.println("testing!");
  74         ZoneInfoFile.ziDir = zidir;
  75         long t0, t1;
  76 
  77         t0 = System.nanoTime();
  78         ZoneInfoOld.getTimeZone("America/Los_Angeles");
  79         t1 = System.nanoTime();
  80         System.out.printf("OLD.getZoneInfoOld()[1]=%d%n", (t1 - t0) / 1000);
  81 
  82         t0 = System.nanoTime();
  83         ZoneInfoOld.getTimeZone("America/New_York");
  84         t1 = System.nanoTime();
  85         System.out.printf("OLD.getZoneInfoOld()[2]=%d%n", (t1 - t0) / 1000);
  86 
  87         t0 = System.nanoTime();
  88         ZoneInfoOld.getTimeZone("America/Denver");
  89         t1 = System.nanoTime();
  90         System.out.printf("OLD.getZoneInfoOld()[3]=%d%n", (t1 - t0) / 1000);
  91 
  92         t0 = System.nanoTime();
  93         String[] zids_old = ZoneInfoOld.getAvailableIDs();
  94         t1 = System.nanoTime();
  95         System.out.printf("OLD.getAvailableIDs()=%d, total=%d%n",
  96                           (t1 - t0) / 1000, zids_old.length);
  97         Arrays.sort(zids_old);
  98 
  99         t0 = System.nanoTime();
 100         ZoneId.of("America/Los_Angeles").getRules();

 101         t1 = System.nanoTime();
 102         System.out.printf("NEW.getTimeZone()[1]=%d%n", (t1 - t0) / 1000);









 103 






 104         t0 = System.nanoTime();
 105         TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
 106         t1 = System.nanoTime();
 107         System.out.printf("NEW.getTimeZone()[1]=%d%n", (t1 - t0) / 1000);
 108 
 109         t0 = System.nanoTime();
 110         tz = TimeZone.getTimeZone("America/New_York");
 111         t1 = System.nanoTime();
 112         System.out.printf("NEW.getTimeZone()[2]=%d%n", (t1 - t0) / 1000);
 113 
 114         t0 = System.nanoTime();
 115         tz = TimeZone.getTimeZone("America/Denver");
 116         t1 = System.nanoTime();
 117         System.out.printf("NEW.getTimeZone()[3]=%d%n", (t1 - t0) / 1000);
 118 
 119         t0 = System.nanoTime();
 120         String[] zids_new = TimeZone.getAvailableIDs();
 121         t1 = System.nanoTime();
 122         System.out.printf("NEW.getAvailableIDs()=%d, total=%d%n",
 123                           (t1 - t0) / 1000, zids_new.length);
 124         Arrays.sort(zids_new);
 125 








 126         t0 = System.currentTimeMillis();
 127         for (String zid : zids_new) {
 128             TimeZone.getTimeZone(zid);
 129         }
 130         t1 = System.currentTimeMillis();
 131         System.out.printf("NEW.TotalTZ()=%d (ms)%n", t1 - t0);
 132 
 133         t0 = System.currentTimeMillis();
 134         for (String zid : zids_old) {
 135             ZoneInfoOld.getTimeZone(zid);
 136         }
 137         t1 = System.currentTimeMillis();
 138         System.out.printf("OLD.TotalTZ()=%d (ms)%n", t1 - t0);
 139 
 140         if (!Arrays.equals(zids_old, zids_new)) {
 141             throw new RuntimeException("  FAILED:  availableIds don't match");
 142         }





 143         for (String zid : zids_new) {
 144             ZoneInfoOld zi = toZoneInfoOld(TimeZone.getTimeZone(zid));
 145             ZoneInfoOld ziOLD = (ZoneInfoOld)ZoneInfoOld.getTimeZone(zid);
 146             if (! zi.equalsTo(ziOLD)) {
 147                 System.out.println(zi.diffsTo(ziOLD));
 148                 throw new RuntimeException("  FAILED:  " + zid);
 149             }
 150         }
 151         delete(fZidir);
 152 
 153         // test tzdb version
 154         if (!ver.equals(sun.util.calendar.ZoneInfoFile.getVersion())) {
 155             System.out.printf("  FAILED:  ver=%s, expected=%s%n",
 156                               sun.util.calendar.ZoneInfoFile.getVersion(), ver);
 157             throw new RuntimeException("Version test failed");
 158         }
 159 
 160         // test getAvailableIDs(raw);
 161         zids_new = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);
 162         //Arrays.sort(zids_new);




  51         if (!fZidir.exists()) {
  52             fZidir.mkdirs();
  53         }
  54         Matcher m = Pattern.compile("tzdata(?<ver>[0-9]{4}[A-z])")
  55                            .matcher(new String(Files.readAllBytes(Paths.get(tzdir, "VERSION")), "ascii"));
  56         String ver = m.find() ? m.group("ver") : "NULL";
  57 
  58         ArrayList<String> alist = new ArrayList<>();
  59         alist.add("-V");
  60         alist.add(ver);
  61         alist.add("-d");
  62         alist.add(zidir);
  63         for (String f : tzfiles.split(" ")) {
  64             alist.add(tzdir + File.separator + f);
  65         }
  66         for (String f : jdk_tzfiles.split(" ")) {
  67             alist.add(jdk_tzdir + File.separator + f);
  68         }
  69         System.out.println("Compiling tz files!");
  70         Main.main(alist.toArray(new String[alist.size()]));

  71 
  72         //////////////////////////////////
  73         System.out.println("testing!");
  74         ZoneInfoFile.ziDir = zidir;
  75         long t0, t1;
  76 
  77         t0 = System.nanoTime();
  78         ZoneInfoOld.getTimeZone("America/Los_Angeles");
  79         t1 = System.nanoTime();
  80         System.out.printf("OLD.getZoneInfoOld()[1]=%d%n", (t1 - t0) / 1000);
  81 
  82         t0 = System.nanoTime();
  83         ZoneInfoOld.getTimeZone("America/New_York");
  84         t1 = System.nanoTime();
  85         System.out.printf("OLD.getZoneInfoOld()[2]=%d%n", (t1 - t0) / 1000);
  86 
  87         t0 = System.nanoTime();
  88         ZoneInfoOld.getTimeZone("America/Denver");
  89         t1 = System.nanoTime();
  90         System.out.printf("OLD.getZoneInfoOld()[3]=%d%n", (t1 - t0) / 1000);
  91 
  92         t0 = System.nanoTime();
  93         String[] zids_old = ZoneInfoOld.getAvailableIDs();
  94         t1 = System.nanoTime();
  95         System.out.printf("OLD.getAvailableIDs()=%d, total=%d%n",
  96                           (t1 - t0) / 1000, zids_old.length);
  97         Arrays.sort(zids_old);
  98 
  99         t0 = System.nanoTime();
 100         String[] alias_old = ZoneInfoOld.getAliasTable()
 101                                  .keySet().toArray(new String[0]);
 102         t1 = System.nanoTime();
 103         System.out.printf("OLD.getAliasTable()=%d, total=%d%n",
 104                           (t1 - t0) / 1000, alias_old.length);
 105         Arrays.sort(alias_old);
 106 
 107         t0 = System.currentTimeMillis();
 108         for (String zid : zids_old) {
 109             ZoneInfoOld.getTimeZone(zid);
 110         }
 111         t1 = System.currentTimeMillis();
 112         System.out.printf("OLD.TotalTZ()=%d (ms)%n", t1 - t0);
 113 
 114 /*
 115         t0 = System.nanoTime();
 116         ZoneId.of("America/Los_Angeles").getRules();
 117         t1 = System.nanoTime();
 118         System.out.printf("NEW.ZoneId.of()[1]=%d%n", (t1 - t0) / 1000);
 119 */
 120         t0 = System.nanoTime();
 121         TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
 122         t1 = System.nanoTime();
 123         System.out.printf("NEW.getTimeZone()[1]=%d%n", (t1 - t0) / 1000);
 124 
 125         t0 = System.nanoTime();
 126         tz = TimeZone.getTimeZone("America/New_York");
 127         t1 = System.nanoTime();
 128         System.out.printf("NEW.getTimeZone()[2]=%d%n", (t1 - t0) / 1000);
 129 
 130         t0 = System.nanoTime();
 131         tz = TimeZone.getTimeZone("America/Denver");
 132         t1 = System.nanoTime();
 133         System.out.printf("NEW.getTimeZone()[3]=%d%n", (t1 - t0) / 1000);
 134 
 135         t0 = System.nanoTime();
 136         String[] zids_new = TimeZone.getAvailableIDs();
 137         t1 = System.nanoTime();
 138         System.out.printf("NEW.getAvailableIDs()=%d, total=%d%n",
 139                           (t1 - t0) / 1000, zids_new.length);
 140         Arrays.sort(zids_new);
 141 
 142         t0 = System.nanoTime();
 143         String[] alias_new = sun.util.calendar.ZoneInfo.getAliasTable()
 144                                  .keySet().toArray(new String[0]);
 145         t1 = System.nanoTime();
 146         System.out.printf("NEW.getAliasTable()=%d, total=%d%n",
 147                           (t1 - t0) / 1000, alias_new.length);
 148         Arrays.sort(alias_new);
 149 
 150         t0 = System.currentTimeMillis();
 151         for (String zid : zids_new) {
 152             TimeZone.getTimeZone(zid);
 153         }
 154         t1 = System.currentTimeMillis();
 155         System.out.printf("NEW.TotalTZ()=%d (ms)%n", t1 - t0);
 156 







 157         if (!Arrays.equals(zids_old, zids_new)) {
 158             throw new RuntimeException("  FAILED:  availableIds don't match");
 159         }
 160 
 161         if (!Arrays.equals(alias_old, alias_new)) {
 162             throw new RuntimeException("  FAILED:  aliases don't match");
 163         }
 164 
 165         for (String zid : zids_new) {
 166             ZoneInfoOld zi = toZoneInfoOld(TimeZone.getTimeZone(zid));
 167             ZoneInfoOld ziOLD = (ZoneInfoOld)ZoneInfoOld.getTimeZone(zid);
 168             if (! zi.equalsTo(ziOLD)) {
 169                 System.out.println(zi.diffsTo(ziOLD));
 170                 throw new RuntimeException("  FAILED:  " + zid);
 171             }
 172         }
 173         delete(fZidir);
 174 
 175         // test tzdb version
 176         if (!ver.equals(sun.util.calendar.ZoneInfoFile.getVersion())) {
 177             System.out.printf("  FAILED:  ver=%s, expected=%s%n",
 178                               sun.util.calendar.ZoneInfoFile.getVersion(), ver);
 179             throw new RuntimeException("Version test failed");
 180         }
 181 
 182         // test getAvailableIDs(raw);
 183         zids_new = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);
 184         //Arrays.sort(zids_new);