590 Path p = fs.getPath(path); 591 assertTrue(Files.exists(p), path); 592 assertTrue(!(pm.matches(p) ^ expectMatch), 593 p + (expectMatch? " should match " : " should not match ") + 594 pattern); 595 } 596 597 @Test 598 public void testPackagesAndModules() throws Exception { 599 FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/")); 600 assertTrue(Files.isDirectory(fs.getPath("/packages"))); 601 assertTrue(Files.isDirectory(fs.getPath("/modules"))); 602 } 603 604 @DataProvider(name = "packagesSubDirs") 605 private Object[][] packagesSubDirs() { 606 return new Object[][] { 607 { "java.lang" }, 608 { "java.util" }, 609 { "java.nio" }, 610 { "jdk.nashorn.api.scripting" } 611 }; 612 } 613 614 @Test(dataProvider = "packagesSubDirs") 615 public void testPackagesSubDirs(String pkg) throws Exception { 616 FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/")); 617 assertTrue(Files.isDirectory(fs.getPath("/packages/" + pkg)), 618 pkg + " missing"); 619 } 620 621 @DataProvider(name = "packagesLinks") 622 private Object[][] packagesLinks() { 623 return new Object[][] { 624 { "/packages/java.lang/java.base" }, 625 { "/packages/java.lang/java.instrument" }, 626 { "/packages/java/java.base" }, 627 { "/packages/java/java.instrument" }, 628 { "/packages/java/java.rmi" }, 629 { "/packages/java/java.sql" }, 630 { "/packages/javax/java.base" }, 631 { "/packages/javax/java.sql" }, 632 { "/packages/javax/java.xml" }, 633 { "/packages/javax/java.management" }, 634 { "/packages/java.util/java.base" }, 635 { "/packages/jdk.nashorn.api.scripting/jdk.scripting.nashorn" }, 636 }; 637 } 638 639 @Test(dataProvider = "packagesLinks") 640 public void testPackagesLinks(String link) throws Exception { 641 FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/")); 642 Path path = fs.getPath(link); 643 assertTrue(Files.exists(path), link + " missing"); 644 assertTrue(Files.isSymbolicLink(path), path + " is not a link"); 645 path = Files.readSymbolicLink(path); 646 assertEquals(path.toString(), "/modules" + link.substring(link.lastIndexOf("/"))); 647 } 648 649 @DataProvider(name = "modulesSubDirs") 650 private Object[][] modulesSubDirs() { 651 return new Object[][] { 652 { "java.base" }, 653 { "java.sql" }, 654 { "jdk.scripting.nashorn" }, 655 }; 656 } 657 658 @Test(dataProvider = "modulesSubDirs") 659 public void testModulesSubDirs(String module) throws Exception { 660 FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/")); 661 Path path = fs.getPath("/modules/" + module); 662 assertTrue(Files.isDirectory(path), module + " missing"); 663 assertTrue(!Files.isSymbolicLink(path), path + " is a link"); 664 } 665 666 @DataProvider(name="linkChases") 667 private Object[][] linkChases() { 668 return new Object[][] { 669 { "/modules/java.base/java/lang" }, 670 { "/modules/java.base/java/util/Vector.class" }, 671 { "/modules/jdk.scripting.nashorn/jdk/nashorn" }, 672 { "/packages/java.lang/java.base/java/lang" }, 673 { "/packages/java.util/java.base/java/util/Vector.class" }, 674 }; 675 } 676 677 @Test(dataProvider = "linkChases") 678 public void testLinkChases(String link) throws Exception { 679 FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/")); 680 Path path = fs.getPath(link); 681 assertTrue(Files.exists(path), link); 682 } 683 684 @Test 685 public void testSymlinkDirList() throws Exception { 686 FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/")); 687 Path path = fs.getPath("/packages/java.lang/java.base"); 688 assertTrue(Files.isSymbolicLink(path)); 689 assertTrue(Files.isDirectory(path)); 690 691 boolean javaSeen = false, javaxSeen = false; | 590 Path p = fs.getPath(path); 591 assertTrue(Files.exists(p), path); 592 assertTrue(!(pm.matches(p) ^ expectMatch), 593 p + (expectMatch? " should match " : " should not match ") + 594 pattern); 595 } 596 597 @Test 598 public void testPackagesAndModules() throws Exception { 599 FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/")); 600 assertTrue(Files.isDirectory(fs.getPath("/packages"))); 601 assertTrue(Files.isDirectory(fs.getPath("/modules"))); 602 } 603 604 @DataProvider(name = "packagesSubDirs") 605 private Object[][] packagesSubDirs() { 606 return new Object[][] { 607 { "java.lang" }, 608 { "java.util" }, 609 { "java.nio" }, 610 }; 611 } 612 613 @Test(dataProvider = "packagesSubDirs") 614 public void testPackagesSubDirs(String pkg) throws Exception { 615 FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/")); 616 assertTrue(Files.isDirectory(fs.getPath("/packages/" + pkg)), 617 pkg + " missing"); 618 } 619 620 @DataProvider(name = "packagesLinks") 621 private Object[][] packagesLinks() { 622 return new Object[][] { 623 { "/packages/java.lang/java.base" }, 624 { "/packages/java.lang/java.instrument" }, 625 { "/packages/java/java.base" }, 626 { "/packages/java/java.instrument" }, 627 { "/packages/java/java.rmi" }, 628 { "/packages/java/java.sql" }, 629 { "/packages/javax/java.base" }, 630 { "/packages/javax/java.sql" }, 631 { "/packages/javax/java.xml" }, 632 { "/packages/javax/java.management" }, 633 { "/packages/java.util/java.base" }, 634 }; 635 } 636 637 @Test(dataProvider = "packagesLinks") 638 public void testPackagesLinks(String link) throws Exception { 639 FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/")); 640 Path path = fs.getPath(link); 641 assertTrue(Files.exists(path), link + " missing"); 642 assertTrue(Files.isSymbolicLink(path), path + " is not a link"); 643 path = Files.readSymbolicLink(path); 644 assertEquals(path.toString(), "/modules" + link.substring(link.lastIndexOf("/"))); 645 } 646 647 @DataProvider(name = "modulesSubDirs") 648 private Object[][] modulesSubDirs() { 649 return new Object[][] { 650 { "java.base" }, 651 { "java.sql" }, 652 }; 653 } 654 655 @Test(dataProvider = "modulesSubDirs") 656 public void testModulesSubDirs(String module) throws Exception { 657 FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/")); 658 Path path = fs.getPath("/modules/" + module); 659 assertTrue(Files.isDirectory(path), module + " missing"); 660 assertTrue(!Files.isSymbolicLink(path), path + " is a link"); 661 } 662 663 @DataProvider(name="linkChases") 664 private Object[][] linkChases() { 665 return new Object[][] { 666 { "/modules/java.base/java/lang" }, 667 { "/modules/java.base/java/util/Vector.class" }, 668 { "/packages/java.lang/java.base/java/lang" }, 669 { "/packages/java.util/java.base/java/util/Vector.class" }, 670 }; 671 } 672 673 @Test(dataProvider = "linkChases") 674 public void testLinkChases(String link) throws Exception { 675 FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/")); 676 Path path = fs.getPath(link); 677 assertTrue(Files.exists(path), link); 678 } 679 680 @Test 681 public void testSymlinkDirList() throws Exception { 682 FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/")); 683 Path path = fs.getPath("/packages/java.lang/java.base"); 684 assertTrue(Files.isSymbolicLink(path)); 685 assertTrue(Files.isDirectory(path)); 686 687 boolean javaSeen = false, javaxSeen = false; |