< prev index next >
test/langtools/tools/jdeps/MultiReleaseJar.java
Print this page
*** 25,35 ****
* @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/*
* @run testng MultiReleaseJar
*/
import org.testng.Assert;
import org.testng.annotations.AfterClass;
--- 25,35 ----
* @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/* Main
* @run testng MultiReleaseJar
*/
import org.testng.Assert;
import org.testng.annotations.AfterClass;
*** 57,82 ****
.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");
checkResult(r);
! // try out a bunch of things
! 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");
--- 57,88 ----
.findAny()
.orElseThrow(() -> new InternalError("mrjar not found"));
testJdk = System.getProperty("test.jdk");
fileSep = System.getProperty("file.separator");
cmdPath = Paths.get(testJdk, "bin");
// 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 Main.class");
checkResult(r);
! 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,206 ****
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.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);
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);
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 ->",
"9/test.NonPublic",
"9/test.NonPublic",
"9/test.Version",
"9/test.Version",
"9/test.Version",
! "9/test.Version"
);
! r = run("jdeps -v -R -cp Version.jar --multi-release 10 " + path);
checkResult(r, true,
! name + " ->",
! name + " ->",
! "test.Main",
! "test.Main",
! "test.Main",
"Version.jar ->",
"10/test.Version",
"10/test.Version",
"10/test.Version",
"10/test.Version",
"9/test.NonPublic",
! "9/test.NonPublic"
);
! r = run("jdeps -v -R -cp Version.jar --multi-release base " + path);
checkResult(r, true,
! name + " ->",
! name + " ->",
! "test.Main",
! "test.Main",
! "test.Main",
"Version.jar ->",
"test.Version",
! "test.Version"
);
! r = run("jdeps -v -R -cp Version.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);
checkResult(r, true,
! name + " ->",
! name + " ->",
! "test.Main",
! "test.Main",
! "test.Main",
"Version_9.jar ->",
"9/test.NonPublic",
"9/test.NonPublic",
"9/test.Version",
"9/test.Version",
"9/test.Version",
! "9/test.Version"
);
}
@Test
public void ps_and_qs() throws Exception {
--- 119,240 ----
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("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 --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 --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 + " -> 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",
! "foo",
! "Foo.jar",
! "requires mandated java.base",
! "foo -> java.base",
! "p.Foo"
);
! r = run("jdeps -v -R -cp Version.jar --module-path Foo.jar --multi-release 10 " + path);
checkResult(r, true,
! 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",
! "foo",
! "Foo.jar",
! "requires mandated java.base",
! "foo -> java.base",
! "p.Foo"
);
! r = run("jdeps -v -R -cp Version.jar --module-path Foo.jar --multi-release base " + path);
checkResult(r, true,
! name + " -> Version.jar",
! name + " -> foo",
! name + " -> java.base",
! "Main",
! "Main",
! "Main",
! "Main",
"Version.jar ->",
"test.Version",
! "test.Version",
! "foo",
! "Foo.jar",
! "requires mandated java.base",
! "foo -> java.base",
! "p.Foo"
);
! 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 --module-path Foo.jar --multi-release 10 " + path);
checkResult(r, true,
! 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",
! "foo",
! "Foo.jar",
! "requires mandated java.base",
! "foo -> java.base",
! "p.Foo"
);
}
@Test
public void ps_and_qs() throws Exception {
*** 234,283 ****
);
}
@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");
checkResult(r, true,
"foo", // module name
! "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");
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"
);
}
static class Result {
final String cmd;
--- 268,307 ----
);
}
@Test
public void modularJar() throws Exception {
! 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
"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 -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"
! );
!
! 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 >