< prev index next >

jdk/test/java/lang/Class/forName/modules/TestDriver.java

Print this page




  48 
  49 public class TestDriver {
  50 
  51     private static final String TEST_SRC =
  52             Paths.get(System.getProperty("test.src")).toString();
  53     private static final String TEST_CLASSES =
  54             Paths.get(System.getProperty("test.classes")).toString();
  55 
  56     private static final Path MOD_SRC_DIR = Paths.get(TEST_SRC, "src");
  57     private static final Path MOD_DEST_DIR = Paths.get("mods");
  58 
  59     private static final String[] modules = new String[] {"m1", "m2", "m3"};
  60 
  61     /**
  62      * Compiles all modules used by the test.
  63      */
  64     @BeforeClass
  65     public void setup() throws Exception {
  66         assertTrue(CompilerUtils.compile(
  67                         MOD_SRC_DIR, MOD_DEST_DIR,
  68                         "-modulesourcepath",
  69                         MOD_SRC_DIR.toString()));
  70 
  71         copyDirectories(MOD_DEST_DIR.resolve("m1"), Paths.get("mods1"));
  72         copyDirectories(MOD_DEST_DIR.resolve("m2"), Paths.get("mods2"));
  73     }
  74 
  75     @Test
  76     public void test() throws Exception {
  77         String[] options = new String[] {
  78                 "-cp", TEST_CLASSES,
  79                 "-mp", MOD_DEST_DIR.toString(),
  80                 "-addmods", String.join(",", modules),
  81                 "-m", "m2/p2.test.Main"
  82         };
  83         runTest(options);
  84     }
  85 
  86     @Test
  87     public void testUnnamedModule() throws Exception {
  88         String[] options = new String[] {
  89                 "-cp", TEST_CLASSES,
  90                 "-mp", MOD_DEST_DIR.toString(),
  91                 "-addmods", String.join(",", modules),
  92                 "TestMain"
  93         };
  94         runTest(options);
  95     }
  96 
  97     @Test
  98     public void testLayer() throws Exception {
  99         String[] options = new String[] {
 100                 "-cp", TEST_CLASSES,
 101                 "TestLayer"
 102         };
 103 
 104         runTest(options);
 105     }
 106 
 107     @Test
 108     public void testDeniedClassLoaderAccess() throws Exception {
 109         String[] options = new String[] {
 110                 "-mp", MOD_DEST_DIR.toString(),
 111                 "-addmods", String.join(",", modules),
 112                 "-m", "m3/p3.NoGetClassLoaderAccess"
 113         };
 114         assertTrue(executeTestJava(options)
 115                         .outputTo(System.out)
 116                         .errorTo(System.err)
 117                         .getExitValue() == 0);
 118     }
 119 
 120     @Test
 121     public void testDeniedAccess() throws Exception {
 122         Path policyFile = Paths.get(TEST_SRC, "policy.denied");
 123 
 124         String[] options = new String[] {
 125                 "-Djava.security.manager",
 126                 "-Djava.security.policy=" + policyFile.toString(),
 127                 "-mp", MOD_DEST_DIR.toString(),
 128                 "-addmods", String.join(",", modules),
 129                 "-m", "m3/p3.NoAccess"
 130         };
 131         assertTrue(executeTestJava(options)
 132                         .outputTo(System.out)
 133                         .errorTo(System.err)
 134                         .getExitValue() == 0);
 135     }
 136 
 137     private String[] runWithSecurityManager(String[] options) {
 138         Path policyFile = Paths.get(TEST_SRC, "policy");
 139         Stream<String> opts = Stream.concat(Stream.of("-Djava.security.manager",
 140                                                       "-Djava.security.policy=" + policyFile.toString()),
 141                                             Arrays.stream(options));
 142         return opts.toArray(String[]::new);
 143     }
 144 
 145     private void runTest(String[] options) throws Exception {
 146         assertTrue(executeTestJava(options)
 147                         .outputTo(System.out)
 148                         .errorTo(System.err)




  48 
  49 public class TestDriver {
  50 
  51     private static final String TEST_SRC =
  52             Paths.get(System.getProperty("test.src")).toString();
  53     private static final String TEST_CLASSES =
  54             Paths.get(System.getProperty("test.classes")).toString();
  55 
  56     private static final Path MOD_SRC_DIR = Paths.get(TEST_SRC, "src");
  57     private static final Path MOD_DEST_DIR = Paths.get("mods");
  58 
  59     private static final String[] modules = new String[] {"m1", "m2", "m3"};
  60 
  61     /**
  62      * Compiles all modules used by the test.
  63      */
  64     @BeforeClass
  65     public void setup() throws Exception {
  66         assertTrue(CompilerUtils.compile(
  67                         MOD_SRC_DIR, MOD_DEST_DIR,
  68                         "--module-source-path",
  69                         MOD_SRC_DIR.toString()));
  70 
  71         copyDirectories(MOD_DEST_DIR.resolve("m1"), Paths.get("mods1"));
  72         copyDirectories(MOD_DEST_DIR.resolve("m2"), Paths.get("mods2"));
  73     }
  74 
  75     @Test
  76     public void test() throws Exception {
  77         String[] options = new String[] {
  78                 "-cp", TEST_CLASSES,
  79                 "--module-path", MOD_DEST_DIR.toString(),
  80                 "--add-modules", String.join(",", modules),
  81                 "-m", "m2/p2.test.Main"
  82         };
  83         runTest(options);
  84     }
  85 
  86     @Test
  87     public void testUnnamedModule() throws Exception {
  88         String[] options = new String[] {
  89                 "-cp", TEST_CLASSES,
  90                 "--module-path", MOD_DEST_DIR.toString(),
  91                 "--add-modules", String.join(",", modules),
  92                 "TestMain"
  93         };
  94         runTest(options);
  95     }
  96 
  97     @Test
  98     public void testLayer() throws Exception {
  99         String[] options = new String[] {
 100                 "-cp", TEST_CLASSES,
 101                 "TestLayer"
 102         };
 103 
 104         runTest(options);
 105     }
 106 
 107     @Test
 108     public void testDeniedClassLoaderAccess() throws Exception {
 109         String[] options = new String[] {
 110                 "--module-path", MOD_DEST_DIR.toString(),
 111                 "--add-modules", String.join(",", modules),
 112                 "-m", "m3/p3.NoGetClassLoaderAccess"
 113         };
 114         assertTrue(executeTestJava(options)
 115                         .outputTo(System.out)
 116                         .errorTo(System.err)
 117                         .getExitValue() == 0);
 118     }
 119 
 120     @Test
 121     public void testDeniedAccess() throws Exception {
 122         Path policyFile = Paths.get(TEST_SRC, "policy.denied");
 123 
 124         String[] options = new String[] {
 125                 "-Djava.security.manager",
 126                 "-Djava.security.policy=" + policyFile.toString(),
 127                 "--module-path", MOD_DEST_DIR.toString(),
 128                 "--add-modules", String.join(",", modules),
 129                 "-m", "m3/p3.NoAccess"
 130         };
 131         assertTrue(executeTestJava(options)
 132                         .outputTo(System.out)
 133                         .errorTo(System.err)
 134                         .getExitValue() == 0);
 135     }
 136 
 137     private String[] runWithSecurityManager(String[] options) {
 138         Path policyFile = Paths.get(TEST_SRC, "policy");
 139         Stream<String> opts = Stream.concat(Stream.of("-Djava.security.manager",
 140                                                       "-Djava.security.policy=" + policyFile.toString()),
 141                                             Arrays.stream(options));
 142         return opts.toArray(String[]::new);
 143     }
 144 
 145     private void runTest(String[] options) throws Exception {
 146         assertTrue(executeTestJava(options)
 147                         .outputTo(System.out)
 148                         .errorTo(System.err)


< prev index next >