< prev index next >

test/jdk/tools/launcher/modules/validate/ValidateModulesTest.java

Print this page
rev 50671 : [mq]: validate-modules

*** 1,7 **** /* ! * Copyright (c) 2017, 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. --- 1,7 ---- /* ! * Copyright (c) 2017, 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.
*** 21,33 **** * questions. */ /** * @test * @modules java.xml ! * @library /lib/testlibrary ! * @build ValidateModulesTest JarUtils jdk.testlibrary.* * @run testng ValidateModulesTest * @summary Basic test for java --validate-modules */ import java.io.File; --- 21,34 ---- * questions. */ /** * @test + * @bug 8178380 8194937 * @modules java.xml ! * @library src /lib/testlibrary ! * @build ValidateModulesTest hello/* JarUtils jdk.testlibrary.* * @run testng ValidateModulesTest * @summary Basic test for java --validate-modules */ import java.io.File;
*** 43,59 **** @Test public class ValidateModulesTest { /** ! * Test that the system modules validate. */ ! public void testSystemModules() throws Exception { ! run("--validate-modules") ! .stdoutShouldContain("java.base") ! .stdoutShouldContain("java.xml") ! .shouldHaveExitValue(0); } /** * Test an automatic module on the module path with classes in the same * package as a system module. --- 44,87 ---- @Test public class ValidateModulesTest { /** ! * Basic test --validate-modules when there are no errors. */ ! public void testNoErrors() throws Exception { ! String modulePath = System.getProperty("test.module.path"); ! ! test("--validate-modules"); ! ! test("--validate-modules", "-version") ! .shouldContain("Runtime Environment"); ! ! test("--validate-modules", "--list-modules") ! .shouldContain("java.base"); ! ! test("--validate-modules", "-d", "java.base") ! .shouldContain("exports java.lang"); ! ! test("-p", modulePath, "-m", "hello/p.Main") ! .shouldContain("Hello world"); ! ! test("-p", modulePath, "--validate-modules", "-m", "hello/p.Main") ! .shouldNotContain("Hello world"); ! ! test("-p", modulePath, "--validate-modules", "--list-modules") ! .shouldContain("hello"); ! ! test("-p", modulePath, "--validate-modules", "-d", "hello") ! .shouldContain("hello") ! .shouldContain("contains p"); ! ! testExpectingError("--validate-modules", "--add-modules", "BAD") ! .shouldContain("Module BAD not found"); ! ! testExpectingError("--validate-modules", "-m", "BAD") ! .shouldContain("Module BAD not found"); } /** * Test an automatic module on the module path with classes in the same * package as a system module.
*** 66,81 **** touch(classes, "javax/xml/parsers/SAXParser.class"); Path lib = Files.createDirectory(tmpdir.resolve("lib")); JarUtils.createJarFile(lib.resolve("xml.jar"), classes); ! int exitValue = run("-p", lib.toString(), "--validate-modules") .shouldContain("xml automatic") ! .shouldContain("conflicts with module java.xml") ! .getExitValue(); ! assertTrue(exitValue != 0); ! } /** * Test two modules with the same name in a directory. */ --- 94,106 ---- touch(classes, "javax/xml/parsers/SAXParser.class"); Path lib = Files.createDirectory(tmpdir.resolve("lib")); JarUtils.createJarFile(lib.resolve("xml.jar"), classes); ! testExpectingError("-p", lib.toString(), "--validate-modules") .shouldContain("xml automatic") ! .shouldContain("conflicts with module java.xml"); } /** * Test two modules with the same name in a directory. */
*** 87,100 **** Path lib = Files.createDirectory(tmpdir.resolve("lib")); JarUtils.createJarFile(lib.resolve("foo-1.0.jar"), classes); JarUtils.createJarFile(lib.resolve("foo-2.0.jar"), classes); ! int exitValue = run("-p", lib.toString(), "--validate-modules") ! .shouldContain("contains same module") ! .getExitValue(); ! assertTrue(exitValue != 0); } /** * Test two modules with the same name in different directories. */ --- 112,123 ---- Path lib = Files.createDirectory(tmpdir.resolve("lib")); JarUtils.createJarFile(lib.resolve("foo-1.0.jar"), classes); JarUtils.createJarFile(lib.resolve("foo-2.0.jar"), classes); ! testExpectingError("-p", lib.toString(), "--validate-modules") ! .shouldContain("contains same module"); } /** * Test two modules with the same name in different directories. */
*** 108,129 **** JarUtils.createJarFile(lib1.resolve("foo-1.0.jar"), classes); Path lib2 = Files.createDirectory(tmpdir.resolve("lib2")); JarUtils.createJarFile(lib2.resolve("foo-2.0.jar"), classes); ! run("-p", lib1 + File.pathSeparator + lib2, "--validate-modules") ! .shouldContain("shadowed by") ! .shouldHaveExitValue(0); } /** ! * Runs the java launcher with the given arguments. */ ! private OutputAnalyzer run(String... args) throws Exception { ! return ProcessTools.executeTestJava(args) .outputTo(System.out) .errorTo(System.out); } /** * Creates a file relative the given directory. */ --- 131,164 ---- JarUtils.createJarFile(lib1.resolve("foo-1.0.jar"), classes); Path lib2 = Files.createDirectory(tmpdir.resolve("lib2")); JarUtils.createJarFile(lib2.resolve("foo-2.0.jar"), classes); ! test("-p", lib1 + File.pathSeparator + lib2, "--validate-modules") ! .shouldContain("shadowed by"); ! } ! ! /** ! * Runs the java launcher with the given arguments, expecting a 0 exit code ! */ ! private OutputAnalyzer test(String... args) throws Exception { ! OutputAnalyzer analyzer = ProcessTools.executeTestJava(args) ! .outputTo(System.out) ! .errorTo(System.out); ! assertTrue(analyzer.getExitValue() == 0); ! return analyzer; } /** ! * Runs the java launcher with the given arguments, expecting a non-0 exit code */ ! private OutputAnalyzer testExpectingError(String... args) throws Exception { ! OutputAnalyzer analyzer = ProcessTools.executeTestJava(args) .outputTo(System.out) .errorTo(System.out); + assertTrue(analyzer.getExitValue() != 0); + return analyzer; } /** * Creates a file relative the given directory. */
< prev index next >