langtools/test/jdk/javadoc/tool/modules/Modules.java
changeset 44389 a745e6ff79a5
parent 44301 2f97c71f06f4
equal deleted inserted replaced
44388:4d0903f1f311 44389:a745e6ff79a5
    21  * questions.
    21  * questions.
    22  */
    22  */
    23 
    23 
    24 /*
    24 /*
    25  * @test
    25  * @test
    26  * @bug 8159305 8166127 8175860
    26  * @bug 8159305 8166127 8175860 8176481
    27  * @summary Tests primarily the module graph computations.
    27  * @summary Tests primarily the module graph computations.
    28  * @modules
    28  * @modules
    29  *      jdk.javadoc/jdk.javadoc.internal.api
    29  *      jdk.javadoc/jdk.javadoc.internal.api
    30  *      jdk.javadoc/jdk.javadoc.internal.tool
    30  *      jdk.javadoc/jdk.javadoc.internal.tool
    31  *      jdk.compiler/com.sun.tools.javac.api
    31  *      jdk.compiler/com.sun.tools.javac.api
    33  * @library /tools/lib
    33  * @library /tools/lib
    34  * @build toolbox.ToolBox toolbox.TestRunner
    34  * @build toolbox.ToolBox toolbox.TestRunner
    35  * @run main Modules
    35  * @run main Modules
    36  */
    36  */
    37 
    37 
    38 import java.io.File;
       
    39 import java.io.IOException;
    38 import java.io.IOException;
    40 import java.nio.file.Files;
    39 import java.nio.file.Files;
    41 import java.nio.file.Path;
    40 import java.nio.file.Path;
    42 import java.nio.file.Paths;
    41 import java.nio.file.Paths;
    43 
    42 
   419         checkModulesSpecified("M");
   418         checkModulesSpecified("M");
   420         checkModulesIncluded("M");
   419         checkModulesIncluded("M");
   421         checkPackagesIncluded("p");
   420         checkPackagesIncluded("p");
   422         checkTypesIncluded("p.Main");
   421         checkTypesIncluded("p.Main");
   423         checkPackagesNotIncluded(".*open.*");
   422         checkPackagesNotIncluded(".*open.*");
       
   423         assertMessageNotPresent("warning");
   424     }
   424     }
   425 
   425 
   426     @Test
   426     @Test
   427     public void testExpandRequiresTransitive(Path base) throws Exception {
   427     public void testExpandRequiresTransitive(Path base) throws Exception {
   428         Path src = base.resolve("src");
   428         Path src = base.resolve("src");
   440         execTask("--module-source-path", src.toString(),
   440         execTask("--module-source-path", src.toString(),
   441                 "--module", "M",
   441                 "--module", "M",
   442                 "--expand-requires", "transitive");
   442                 "--expand-requires", "transitive");
   443 
   443 
   444         checkModulesSpecified("M", "N", "O");
   444         checkModulesSpecified("M", "N", "O");
       
   445         checkModulesNotSpecified("java.base");
   445         checkModulesIncluded("M", "N", "O");
   446         checkModulesIncluded("M", "N", "O");
       
   447         checkModulesNotIncluded("java.base");
   446         checkPackagesIncluded("p", "openN", "openO");
   448         checkPackagesIncluded("p", "openN", "openO");
   447         checkTypesIncluded("p.Main", "openN.N", "openO.O");
   449         checkTypesIncluded("p.Main", "openN.N", "openO.O");
       
   450         assertMessageNotPresent("warning");
       
   451     }
       
   452 
       
   453     @Test
       
   454     public void testExpandRequiresTransitiveWithMandated(Path base) throws Exception {
       
   455         Path src = base.resolve("src");
       
   456 
       
   457         createAuxiliaryModules(src);
       
   458 
       
   459         Path patchSrc = Paths.get(src.toString(), "patch");
       
   460 
       
   461         new ModuleBuilder(tb, "M")
       
   462                 .comment("The M module.")
       
   463                 .requiresTransitive("N", src)
       
   464                 .requires("L", src)
       
   465                 .exports("p")
       
   466                 .classes("package p; public class Main { openO.O o; openN.N n; openL.L l; }")
       
   467                 .write(src);
       
   468 
       
   469         // build the patching module
       
   470         tb.writeJavaFiles(patchSrc, "package pkg1;\n" +
       
   471                 "/** Class A */ public class A extends java.util.ArrayList { }");
       
   472         tb.writeJavaFiles(patchSrc, "package pkg1;\n"
       
   473                 + "/** Class B */ public class B { }");
       
   474 
       
   475         execTask("--module-source-path", src.toString(),
       
   476                 "--patch-module", "java.base=" + patchSrc.toString(),
       
   477                 "--module", "M",
       
   478                 "--expand-requires", "transitive");
       
   479 
       
   480         checkModulesSpecified("java.base", "M", "N", "O");
       
   481         checkModulesIncluded("java.base", "M", "N", "O");
       
   482         checkPackagesIncluded("p", "openN", "openO");
       
   483         checkTypesIncluded("p.Main", "openN.N", "openO.O");
       
   484         assertMessageNotPresent("warning");
   448     }
   485     }
   449 
   486 
   450     @Test
   487     @Test
   451     public void testExpandRequiresAll(Path base) throws Exception {
   488     public void testExpandRequiresAll(Path base) throws Exception {
   452         Path src = base.resolve("src");
   489         Path src = base.resolve("src");
   464 
   501 
   465         execTask("--module-source-path", src.toString(),
   502         execTask("--module-source-path", src.toString(),
   466                 "--module", "M",
   503                 "--module", "M",
   467                 "--expand-requires", "all");
   504                 "--expand-requires", "all");
   468 
   505 
   469         checkModulesSpecified("M", "java.base", "N", "L", "O");
   506         checkModulesSpecified("M", "N", "L", "O");
   470         checkModulesIncluded("M", "java.base", "N", "L", "O");
   507         checkModulesIncluded("M", "N", "L", "O");
   471         checkModulesNotIncluded("P", "J", "Q");
   508         checkModulesNotIncluded("P", "J", "Q");
   472         checkPackagesIncluded("p", "openN", "openL", "openO");
   509         checkPackagesIncluded("p", "openN", "openL", "openO");
   473         checkPackagesNotIncluded(".*openP.*", ".*openJ.*");
   510         checkPackagesNotIncluded(".*openP.*", ".*openJ.*");
   474         checkTypesIncluded("p.Main", "openN.N", "openL.L", "openO.O");
   511         checkTypesIncluded("p.Main", "openN.N", "openL.L", "openO.O");
   475         checkTypesNotIncluded(".*openP.*", ".*openJ.*");
   512         checkTypesNotIncluded(".*openP.*", ".*openJ.*");
       
   513         assertMessageNotPresent("warning");
   476     }
   514     }
   477 
   515 
   478     @Test
   516     @Test
   479     public void testMissingModule(Path base) throws Exception {
   517     public void testMissingModule(Path base) throws Exception {
   480         Path src = base.resolve("src");
   518         Path src = base.resolve("src");
   575                 .write(src);
   613                 .write(src);
   576 
   614 
   577         new ModuleBuilder(tb, "L")
   615         new ModuleBuilder(tb, "L")
   578                 .comment("The L module.")
   616                 .comment("The L module.")
   579                 .exports("openL")
   617                 .exports("openL")
   580                 . requiresTransitive("P")
   618                 .requiresTransitive("P")
   581                 .classes("package openL; /** Class L open */ public class L { }")
   619                 .classes("package openL; /** Class L open */ public class L { }")
   582                 .classes("package closedL;  /** Class L closed */ public class L { }")
   620                 .classes("package closedL;  /** Class L closed */ public class L { }")
   583                 .write(src);
   621                 .write(src);
   584 
   622 
   585         new ModuleBuilder(tb, "N")
   623         new ModuleBuilder(tb, "N")
   597                 .classes("package openO; /** Class O open. */ public class O { openJ.J j; }")
   635                 .classes("package openO; /** Class O open. */ public class O { openJ.J j; }")
   598                 .classes("package closedO;  /** Class O closed. */ public class O { }")
   636                 .classes("package closedO;  /** Class O closed. */ public class O { }")
   599                 .write(src);
   637                 .write(src);
   600 
   638 
   601         new ModuleBuilder(tb, "P")
   639         new ModuleBuilder(tb, "P")
   602                 .comment("The O module.")
   640                 .comment("The P module.")
   603                 .exports("openP")
   641                 .exports("openP")
   604                 .requires("J")
   642                 .requires("J")
   605                 .classes("package openP; /** Class O open. */ public class O { openJ.J j; }")
   643                 .classes("package openP; /** Class O open. */ public class O { openJ.J j; }")
   606                 .classes("package closedP;  /** Class O closed. */ public class O { }")
   644                 .classes("package closedP;  /** Class O closed. */ public class O { }")
   607                 .write(src);
   645                 .write(src);