< prev index next >

test/jdk/internal/jrtfs/Basic.java

Print this page

        

*** 26,35 **** --- 26,36 ---- * @summary Basic test of jrt file system provider * @run testng Basic */ import java.io.InputStream; + import java.io.IOException; import java.io.DataInputStream; import java.nio.file.DirectoryStream; import java.nio.file.InvalidPathException; import java.nio.file.Files; import java.nio.file.FileSystem;
*** 581,586 **** --- 582,626 ---- } catch (InvalidPathException e) { ipe = e; } assertTrue(ipe != null); } + + @DataProvider(name="packagesLinkedDirs") + private Object[][] packagesLinkedDirs() { + return new Object[][] { + { "/packages/java.lang/java.base/java/lang/ref" }, + { "/./packages/java.lang/java.base/java/lang/ref" }, + { "packages/java.lang/java.base/java/lang/ref" }, + { "/packages/../packages/java.lang/java.base/java/lang/ref" }, + { "/packages/java.lang/java.base/java/util/zip" }, + { "/./packages/java.lang/java.base/java/util/zip" }, + { "packages/java.lang/java.base/java/util/zip" }, + { "/packages/../packages/java.lang/java.base/java/util/zip" }, + { "/packages/com.oracle/java.xml.ws/com" }, + { "/./packages/com.oracle/java.xml.ws/com" }, + { "packages/com.oracle/java.xml.ws/com" }, + { "/packages/../packages/com.oracle/java.xml.ws/com" } + }; + } + + // @bug 8141521: jrt file system's DirectoryStream reports child paths + // with wrong paths for directories under /packages + @Test(dataProvider = "packagesLinkedDirs") + public void dirStreamPackagesDirTest(String dirName) throws IOException { + FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/")); + Path path = fs.getPath(dirName); + + int childCount = 0, dirPrefixOkayCount = 0; + try (DirectoryStream<Path> dirStream = Files.newDirectoryStream(path)) { + for (Path child : dirStream) { + childCount++; + if (child.toString().startsWith(dirName)) { + dirPrefixOkayCount++; + } + } + } + + assertTrue(childCount != 0); + assertEquals(dirPrefixOkayCount, childCount); + } }
< prev index next >