jdk/test/tools/jar/mmrjar/Basic.java
changeset 45004 ea3137042a61
parent 43731 bc7110b230c1
child 45286 cd809e28c082
equal deleted inserted replaced
44789:73fd39e0702e 45004:ea3137042a61
   219                 "META-INF/versions/9/p/internal/Bar.class"
   219                 "META-INF/versions/9/p/internal/Bar.class"
   220         );
   220         );
   221         Assert.assertEquals(actual, expected);
   221         Assert.assertEquals(actual, expected);
   222     }
   222     }
   223 
   223 
   224     // jar tool does two updates, no exported packages, all concealed
   224     // jar tool does two updates, no exported packages, all concealed.
       
   225     // Along with various --describe-module variants
   225     @Test
   226     @Test
   226     public void test5() throws IOException {
   227     public void test5() throws IOException {
   227         // compile the mr10 directory
   228         // compile the mr10 directory
   228         Path source = testsrc.resolve("src").resolve("mr10");
   229         Path source = testsrc.resolve("src").resolve("mr10");
   229         Path destination = Paths.get("mr10");
   230         Path destination = Paths.get("mr10");
   264         );
   265         );
   265         Assert.assertEquals(actual, expected);
   266         Assert.assertEquals(actual, expected);
   266 
   267 
   267         jar("-d --file mr.jar");
   268         jar("-d --file mr.jar");
   268 
   269 
       
   270         String uri = (Paths.get("mr.jar")).toUri().toString();
       
   271         uri = "jar:" + uri + "/!module-info.class";
       
   272 
   269         actual = lines(outbytes);
   273         actual = lines(outbytes);
   270         expected = Set.of(
   274         expected = Set.of(
   271                 "module hi (module-info.class)",
   275                 "hi " + uri,
   272                 "requires mandated java.base",
   276                 "requires java.base mandated",
   273                 "contains p",
   277                 "contains p",
   274                 "contains p.internal"
   278                 "contains p.internal"
   275         );
   279         );
   276         Assert.assertEquals(actual, expected);
   280         Assert.assertEquals(actual, expected);
   277 
   281 
   302 
   306 
   303         jar("-d --file mr.jar");
   307         jar("-d --file mr.jar");
   304 
   308 
   305         actual = lines(outbytes);
   309         actual = lines(outbytes);
   306         expected = Set.of(
   310         expected = Set.of(
   307                 "module hi (module-info.class)",
   311                 "hi " + uri,
   308                 "requires mandated java.base",
   312                 "requires java.base mandated",
   309                 "contains p",
   313                 "contains p",
   310                 "contains p.internal",
   314                 "contains p.internal",
   311                 "contains p.internal.bar"
   315                 "contains p.internal.bar"
   312         );
   316         );
   313         Assert.assertEquals(actual, expected);
   317         Assert.assertEquals(actual, expected);
       
   318 
       
   319         for (String release : new String[] {"9" , "10", "100", "1000"}) {
       
   320             jar("-d --file mr.jar --release " + release);
       
   321             actual = lines(outbytes);
       
   322             Assert.assertEquals(actual, expected);
       
   323         }
   314     }
   324     }
   315 
   325 
   316     // root and versioned module-info entries have different main-class, version
   326     // root and versioned module-info entries have different main-class, version
   317     // attributes
   327     // attributes
   318     @Test
   328     @Test
   397 
   407 
   398         int rc = jar("--create --file mmr.jar --main-class=p.Main -C test7 . --release 9 -C test7-v9 . --release 10 -C test7-v10 .");
   408         int rc = jar("--create --file mmr.jar --main-class=p.Main -C test7 . --release 9 -C test7-v9 . --release 10 -C test7-v10 .");
   399         Assert.assertEquals(rc, 0);
   409         Assert.assertEquals(rc, 0);
   400 
   410 
   401         jar("-d --file=mmr.jar");
   411         jar("-d --file=mmr.jar");
   402         System.out.println("-----------------------");
   412         Set<String> actual = lines(outbytes);
   403         System.out.println( new String(outbytes.toByteArray()));
   413         Set<String> expected = Set.of(
   404         Assert.assertEquals(lines(outbytes),
   414                 "releases: 9 10",
   405                             Set.of(
   415                 "No root module descriptor, specify --release"
   406                            "module m1 (META-INF/versions/9/module-info.class)",
   416         );
   407                            "module m1 (META-INF/versions/10/module-info.class)",
   417         Assert.assertEquals(actual, expected);
   408                            "requires mandated java.base",
   418 
   409                            "exports p",
   419         String uriPrefix = "jar:" + (Paths.get("mmr.jar")).toUri().toString();
   410                            "main-class p.Main"));
   420 
       
   421         jar("-d --file=mmr.jar --release 9");
       
   422         actual = lines(outbytes);
       
   423         expected = Set.of(
       
   424                 "releases: 9 10",
       
   425                 "m1 " + uriPrefix + "/!META-INF/versions/9/module-info.class",
       
   426                 "requires java.base mandated",
       
   427                 "exports p",
       
   428                 "main-class p.Main"
       
   429         );
       
   430         Assert.assertEquals(actual, expected);
       
   431 
       
   432         jar("-d --file=mmr.jar --release 10");
       
   433         actual = lines(outbytes);
       
   434         expected = Set.of(
       
   435                 "releases: 9 10",
       
   436                 "m1 " + uriPrefix + "/!META-INF/versions/10/module-info.class",
       
   437                 "requires java.base mandated",
       
   438                 "exports p",
       
   439                 "main-class p.Main"
       
   440         );
       
   441         Assert.assertEquals(actual, expected);
       
   442 
       
   443         for (String release : new String[] {"11", "12", "15", "100"}) {
       
   444             jar("-d --file mmr.jar --release " + release);
       
   445             actual = lines(outbytes);
       
   446             Assert.assertEquals(actual, expected);
       
   447         }
   411 
   448 
   412         Optional<String> exp = Optional.of("p.Main");
   449         Optional<String> exp = Optional.of("p.Main");
   413         try (ZipFile zf = new ZipFile("mmr.jar")) {
   450         try (ZipFile zf = new ZipFile("mmr.jar")) {
   414             Assert.assertTrue(zf.getEntry("module-info.class") == null);
   451             Assert.assertTrue(zf.getEntry("module-info.class") == null);
   415 
   452