On Wed, 3 Jun 2026 14:34:38 GMT, Ashay Rane <[email protected]> wrote:

> Prior to this change, the DirPermissionDenied.java test used chmod to
> change directory permissions, which can fail on Windows either because
> chmod is not a native Windows program/command or because MSys2's
> implementation of chmod does not work well with Access Control Entries
> in Windows.  Consequently, the DirPermissionDenied.java test fails on
> Windows, except in specific restrictive cases such as when the test is
> run using the most recent version of Cygwin.
> 
> This patch updates the test so that instead of shelling out to chmod,
> the test now uses Java APIs to change the directory permission.  Key to
> this change is that depending on whether the filesystem supports POSIX
> or Access Control Lists, the test decides whether to use the Unix-style
> file permissions or ACL entries.  In the unlikely case that the test is
> unable to change the directory access as is required by the test, the
> test bails out with a `SkippedException`.  This is required on older
> versions of Windows, where Administrator accounts implictly have
> unconditional access to all files, even when there is an attempt to deny
> them access.
> 
> I've validated that this test now passes on macOS, Windows 11, and
> Windows Server 2022 Datacenter.
> 
> ---------
> - [x] I confirm that I make this contribution in accordance with the [OpenJDK 
> Interim AI Policy](https://openjdk.org/legal/ai).

Thanks for the suggestion, I've now replaced `SkippedException` with JUnit's 
`Assumptions.assumeTrue()`.  Let me know if I didn't get the conversion right.

Yes, I've validated that this test passes on the machines where this test 
previously failed, the key reason being that on Windows, the test no longer 
depends on whether you're using Cygwin or MSys or the specific versions of 
those.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/31372#issuecomment-4651128701

Reply via email to