< prev index next >

test/jdk/java/util/jar/JarFile/mrjar/TestVersionedStream.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -62,10 +62,12 @@
 
 public class TestVersionedStream {
     private final Path userdir;
     private final Set<String> unversionedEntryNames;
 
+    private static final int LATEST_VERSION = Runtime.version().feature();
+
     public TestVersionedStream() throws IOException {
         userdir = Paths.get(System.getProperty("user.dir", "."));
 
         // These are not real class files even though they end with .class.
         // They are resource files so jar tool validation won't reject them.

@@ -77,16 +79,18 @@
                 "base/p/Foo.class",
                 "base/p/Main.class",
                 "v9/p/Foo.class",
                 "v10/p/Foo.class",
                 "v10/q/Bar.class",
-                "v11/p/Bar.class",
-                "v11/p/Foo.class"
+                "v" + LATEST_VERSION + "/p/Bar.class",
+                "v" + LATEST_VERSION + "/p/Foo.class"
         );
 
-        jar("cf mmr.jar -C base . --release 9 -C v9 . " +
-                "--release 10 -C v10 . --release 11 -C v11 .");
+        jar("cf mmr.jar -C base . " + 
+            "--release 9 -C v9 . " +
+            "--release 10 -C v10 . " +
+            "--release " + LATEST_VERSION + " -C v" + LATEST_VERSION + " .");
 
         System.out.println("Contents of mmr.jar\n=======");
 
         try(JarFile jf = new JarFile("mmr.jar")) {
             unversionedEntryNames = jf.stream()

@@ -122,11 +126,11 @@
     public Object[][] data() {
         return new Object[][] {
             {Runtime.Version.parse("8")},
             {Runtime.Version.parse("9")},
             {Runtime.Version.parse("10")},
-            {Runtime.Version.parse("11")},
+            {Runtime.Version.parse(Integer.toString(LATEST_VERSION))},
             {JarFile.baseVersion()},
             {JarFile.runtimeVersion()}
         };
     }
 

@@ -171,11 +175,12 @@
             // value.[1] versioned path/real name
             Map<String,String[]> expected = new HashMap<>();
 
             expected.put("p/Bar.class", new String[] { "base/p/Bar.class", "p/Bar.class" });
             expected.put("p/Main.class", new String[] { "base/p/Main.class", "p/Main.class" });
-            switch (version.major()) {
+            int majorVersion  = version.major();
+            switch (majorVersion) {
                 case 8:
                     expected.put("p/Foo.class", new String[]
                         { "base/p/Foo.class", "p/Foo.class" });
                     break;
                 case 9:

@@ -187,21 +192,24 @@
                         { "v10/p/Foo.class", "META-INF/versions/10/p/Foo.class" });
 
                     expected.put("q/Bar.class", new String[]
                         { "v10/q/Bar.class", "META-INF/versions/10/q/Bar.class" });
                     break;
-                case 11:
-                    expected.put("p/Bar.class", new String[]
-                        { "v11/p/Bar.class", "META-INF/versions/11/p/Bar.class"});
-                    expected.put("p/Foo.class", new String[]
-                        { "v11/p/Foo.class", "META-INF/versions/11/p/Foo.class"});
-                    expected.put("q/Bar.class", new String[]
-                        { "q/Bar.class", "META-INF/versions/10/q/Bar.class"});
-                    break;
                 default:
+                    if (majorVersion == LATEST_VERSION) {
+                        expected.put("p/Bar.class",
+                                     new String[] { "v" + LATEST_VERSION + "/p/Bar.class",
+                                                    "META-INF/versions/" + LATEST_VERSION + "/p/Bar.class"});
+                        expected.put("p/Foo.class",
+                                     new String[]{ "v" + LATEST_VERSION + "/p/Foo.class",
+                                                   "META-INF/versions/" + LATEST_VERSION + "/p/Foo.class"});
+                        expected.put("q/Bar.class",
+                                     new String[] { "q/Bar.class", "META-INF/versions/10/q/Bar.class"});
+                    } else {
                     Assert.fail("Test out of date, please add more cases");
             }
+            }
 
             expected.entrySet().stream().forEach(e -> {
                 String name = e.getKey();
                 int i = versionedNames.indexOf(name);
                 Assert.assertTrue(i != -1, name + " not in enames");
< prev index next >