The tests under test/jdk/nio/zipfs are intended to test the zipfs implementation and hence they fail if the zipfs provider does not exist. So I agree with Shura that they should have @modules jdk.zipfs that enables test selection per the @modules declaration.
Mandy > On May 25, 2016, at 11:06 AM, Alexandre (Shura) Iline > <alexandre.il...@oracle.com> wrote: > > Sherman, > > Not declaring any module dependencies in test is equivalent to declaring that > the test only depends on java.base. In such case, the test will be picked up > for execution by JTReg, no matter what modules are available. One way to test > such behavior would be to supply -javaoptions:”-limitmods java.base” in the > JTReg command line. The tests will be selected for execution, but would they > work? > > I have taken another look on the code now, it looks like with the absence of > jdk.zipfs test/jdk/nio/zipfs/Basic.java test will fail. I think it would be > good to skip this test altogether if there is no jdk.zipfs available. > > Shura > >> On May 25, 2016, at 10:49 AM, Xueming Shen <xueming.s...@oracle.com> wrote: >> >> >> Should it? My understanding is that those tests don't use zipfs directly >> from zipfs module, it access it via java.base's FileSystemProvider interface. >> It depends on the jdk runtime to pick up the zipfs "provider" to function. So >> if the jdk runtime fails to pick up the zipfs module for whatever reason, >> that's something we want to detect as well? >> >> -Sherman >> >> On 05/25/2016 10:18 AM, Alexandre (Shura) Iline wrote: >>> Hi. >>> >>> Should the tests also declare “@modules jdk.zipfs”? >>> >>> Shura >>> >>>> On May 25, 2016, at 9:39 AM, Xueming Shen<xueming.s...@oracle.com> wrote: >>>> >>>> Hi, >>>> >>>> Please help review the changes for the following zipfs related bug fixes >>>> >>>> JDK-8147539: (zipfs) ZipPath should throw ProviderMismatchException when >>>> invoking register() >>>> JDK-8153248: (zipfs) ZipPath#getFileName( ) returns inconsistent result >>>> JDK-8146754: (zipfs) ZipPath.relativize() returns wrong result for path >>>> ending with slash / >>>> JDK-8139956: (zipfs) ZipPath does not produce correct empty path on >>>> relativize() >>>> >>>> issue: >>>> https://bugs.openjdk.java.net/browse/JDK-8147539 >>>> https://bugs.openjdk.java.net/browse/JDK-8153248 >>>> https://bugs.openjdk.java.net/browse/JDK-8146754 >>>> https://bugs.openjdk.java.net/browse/JDK-8139956 >>>> >>>> webrev: >>>> http://cr.openjdk.java.net/~sherman/8139956_8146754_8147539_8153248/webrev/ >>>> >>>> The changes are relative easy. >>>> (1) ZipPath.initOffsets() should deal with empty path specially, as the >>>> UnixPath impl does >>>> (2) ZipPath.normalize(byte[]) should take care of tailing "/" (it is taken >>>> care of at >>>> ZipPath.normalize(byte[], int), but is missed in the "main" method) >>>> (3) ZipPath.register() should throw PME as suggested. >>>> >>>> Thanks, >>>> Sherman >> >