< prev index next >

test/langtools/tools/jdeps/MultiReleaseJar.java

Print this page

        

@@ -25,11 +25,11 @@
  * @test
  * @bug 8153654 8176333
  * @summary Tests for jdeps tool with multi-release jar files
  * @modules jdk.jdeps/com.sun.tools.jdeps
  * @library mrjar mrjar/base mrjar/9 mrjar/10 mrjar/v9 mrjar/v10
- * @build test.* p.* q.* foo/*
+ * @build test.* p.* q.* foo/* Main
  * @run testng MultiReleaseJar
  */
 
 import org.testng.Assert;
 import org.testng.annotations.AfterClass;

@@ -57,26 +57,32 @@
                       .findAny()
                       .orElseThrow(() -> new InternalError("mrjar not found"));
         testJdk = System.getProperty("test.jdk");
         fileSep = System.getProperty("file.separator");
         cmdPath = Paths.get(testJdk, "bin");
-    }
 
-    @Test
-    public void basic() throws Exception {
         // build Version.jar, Version_9.jar and main.jar
         Result r = run("jar -cf Version.jar -C base test --release 9 -C 9 test --release 10 -C 10 test");
         checkResult(r);
 
         r = run("jar -cf Version_9.jar -C base test --release 9 -C 9 test");
         checkResult(r);
 
-        r = run("jar -cf Main.jar test/Main.class");
+        r = run("jar -cf Main.jar Main.class");
         checkResult(r);
 
-        // try out a bunch of things
-        r = run("jdeps --multi-release 9  -v missing.jar");
+        r = run("jar -cf Foo.jar -C base p");
+        checkResult(r);
+
+        Path foo = Paths.get(System.getProperty("test.classes")).resolve("modules").resolve("foo");
+        r = run("jar -uf Foo.jar --release 9 -C " + foo.toString() + " module-info.class --release 10 -C v10 q");
+        checkResult(r);
+    }
+
+    @Test
+    public void basic() throws Exception {
+        Result r = run("jdeps --multi-release 9  -v missing.jar");
         checkResult(r, false, "Warning: Path does not exist: missing.jar");
 
         r = run("jdeps -v Version.jar");
         checkResult(r, false, "--multi-release option is not set");
 

@@ -113,94 +119,122 @@
         checkResult(r, false, "Error: invalid argument for option: 8");
 
         r = run("jdeps --multi-release 9.1  -v Version.jar");
         checkResult(r, false, "Error: invalid argument for option: 9.1");
 
-        runJdeps("test/Main.class");
+        runJdeps("Main.class");
         runJdeps("Main.jar");
     }
 
 
     private void runJdeps(String path) throws Exception {
         Result r = run("jdeps -v -R -cp Version.jar " + path);
         checkResult(r, false, "--multi-release option is not set");
 
-        r = run("jdeps -v -R -cp Version.jar -multi-release 9 " + path);
+        r = run("jdeps -v -R -cp Version.jar --module-path Foo.jar -multi-release 9 " + path);
         checkResult(r, false,
             "Error: unknown option: -multi-release",
             "Usage: jdeps <options> <path",
             "use --help"
         );
 
-        r = run("jdeps -v -R -cp Version.jar --multi-release 9 " + path);
+        r = run("jdeps -v -R -cp Version.jar --module-path Foo.jar --multi-release 9 " + path);
 
         String name = path;
         int index = path.lastIndexOf('/');
         if (index >= 0) {
             name = path.substring(index + 1, path.length());
         }
         checkResult(r, true,
-            name + " ->",
-            name + " ->",
-            "test.Main",
-            "test.Main",
-            "test.Main",
-            "Version.jar ->",
+            name + " -> Version.jar",
+            name + " -> foo",
+            name + " -> java.base",
+            "Main",
+            "Main",
+            "Main",
+            "Main",
+            "Version.jar -> java.base",
             "9/test.NonPublic",
             "9/test.NonPublic",
             "9/test.Version",
             "9/test.Version",
             "9/test.Version",
-            "9/test.Version"
+            "9/test.Version",
+            "foo",
+            "Foo.jar",
+            "requires mandated java.base",
+            "foo -> java.base",
+            "p.Foo"
         );
 
-        r = run("jdeps -v -R -cp Version.jar --multi-release 10 " + path);
+        r = run("jdeps -v -R -cp Version.jar --module-path Foo.jar --multi-release 10 " + path);
         checkResult(r, true,
-            name + " ->",
-            name + " ->",
-            "test.Main",
-            "test.Main",
-            "test.Main",
+            name + " -> Version.jar",
+            name + " -> foo",
+            name + " -> java.base",
+            "Main",
+            "Main",
+            "Main",
+            "Main",
             "Version.jar ->",
             "10/test.Version",
             "10/test.Version",
             "10/test.Version",
             "10/test.Version",
             "9/test.NonPublic",
-            "9/test.NonPublic"
+            "9/test.NonPublic",
+            "foo",
+            "Foo.jar",
+            "requires mandated java.base",
+            "foo -> java.base",
+            "p.Foo"
         );
 
-        r = run("jdeps -v -R -cp Version.jar --multi-release base " + path);
+        r = run("jdeps -v -R -cp Version.jar --module-path Foo.jar --multi-release base " + path);
         checkResult(r, true,
-            name + " ->",
-            name + " ->",
-            "test.Main",
-            "test.Main",
-            "test.Main",
+            name + " -> Version.jar",
+            name + " -> foo",
+            name + " -> java.base",
+            "Main",
+            "Main",
+            "Main",
+            "Main",
             "Version.jar ->",
             "test.Version",
-            "test.Version"
+            "test.Version",
+            "foo",
+            "Foo.jar",
+            "requires mandated java.base",
+            "foo -> java.base",
+            "p.Foo"
         );
 
-        r = run("jdeps -v -R -cp Version.jar --multi-release 9.1 " + path);
+        r = run("jdeps -v -R -cp Version.jar --module-path  Foo.jar --multi-release 9.1 " + path);
         checkResult(r, false, "Error: invalid argument for option: 9.1");
 
         // Version_9.jar does not have any version 10 entry
-        r = run("jdeps -v -R -cp Version_9.jar --multi-release 10 " + path);
+        r = run("jdeps -v -R -cp Version_9.jar --module-path Foo.jar --multi-release 10 " + path);
         checkResult(r, true,
-            name + " ->",
-            name + " ->",
-            "test.Main",
-            "test.Main",
-            "test.Main",
+            name + " -> Version_9.jar",
+            name + " -> foo",
+            name + " -> java.base",
+            "Main",
+            "Main",
+            "Main",
+            "Main",
             "Version_9.jar ->",
             "9/test.NonPublic",
             "9/test.NonPublic",
             "9/test.Version",
             "9/test.Version",
             "9/test.Version",
-            "9/test.Version"
+            "9/test.Version",
+            "foo",
+            "Foo.jar",
+            "requires mandated java.base",
+            "foo -> java.base",
+            "p.Foo"
         );
     }
 
     @Test
     public void ps_and_qs() throws Exception {

@@ -234,50 +268,40 @@
         );
     }
 
     @Test
     public void modularJar() throws Exception {
-        Result r = run("jar -cf foo.jar -C base p");
-        checkResult(r);
-
-        Path foo = Paths.get(System.getProperty("test.classes")).resolve("modules").resolve("foo");
-        r = run("jar -uf foo.jar --release 9 -C " + foo.toString() + " module-info.class --release 10 -C v10 q");
-        checkResult(r);
-
-        r = run("jdeps -v --multi-release 10 --module-path foo.jar -m foo");
+        Result r = run("jdeps -v --multi-release 10 --module-path Foo.jar -m foo");
         checkResult(r, true,
             "foo",                   // module name
-            "foo.jar",                      // the path to foo.jar
+            "Foo.jar",                      // the path to Foo.jar
             "requires mandated java.base",  // module dependences
             "foo -> java.base",
             "10/q.Bar",
             "10/q.Bar",
             "10/q.Gee",
             "p.Foo"
         );
 
-        r = run("jdeps --multi-release 9 --module-path foo.jar Main.jar");
-        checkResult(r, true,
-            "Main.jar ->",
-            "test",
-            "foo",                          // module name
-            "foo.jar",                      // the path to foo.jar
-            "requires mandated java.base",  // module dependences
-            "foo -> java.base",
-            "p"
-        );
-
-        r = run("jdeps --multi-release 10 --module-path foo.jar Main.jar");
+        r = run("jdeps --multi-release 9 -cp Version.jar --module-path Foo.jar Main.jar");
         checkResult(r, true,
-            "Main.jar ->",
-            "test",
-            "foo",                          // module name
-            "foo.jar",                      // the path to foo.jar
-            "requires mandated java.base",  // module dependences
-            "foo -> java.base",
-            "p",
-            "q"
+            "Main.jar -> Version.jar",
+            "Main.jar -> foo",
+            "Main.jar -> java.base",
+            "-> java.lang",
+            "-> p",
+            "-> test"
+        );
+
+        r = run("jdeps --multi-release 10 -cp Version.jar --module-path Foo.jar Main.jar");
+        checkResult(r, true,
+            "Main.jar -> Version.jar",
+            "Main.jar -> foo",
+            "Main.jar -> java.base",
+            "-> java.lang",
+            "-> p",
+            "-> test"
         );
     }
 
     static class Result {
         final String cmd;
< prev index next >