On Wed, 8 Jun 2022 17:43:49 GMT, Naoto Sato <na...@openjdk.org> wrote:

>> The test  
>> `test/jdk/java/util/ResourceBundle/Control/MissingResourceCauseTest.java` 
>> verifies different failure modes of resource bundles. One of the failures is 
>> that the runner class, `MissingResourceCauseTestRun.java`, creates a file 
>> `UnreadableRB`, and runs `chmod 000` on it, to make it unreadable by the 
>> test. Then MissingResourceCauseTest is called, and the `UnreadableRB` file 
>> is removed.
>> This does not work reliably on Windows. On msys2, `chmod` is essentially a 
>> no-op, so the file is not made unreadable, and hence the test fails. In my 
>> personal cygwin test environment, the chmod command does have some effect, 
>> but it is still not enough to make the file unreadable, and so the test 
>> fails.
>> The test was originally a shell script test that got converted to Java in 
>> [JDK-4354216](https://bugs.openjdk.org/browse/JDK-8213127). The original 
>> shell script code explicitly excluded Windows from testing. This was changed 
>> in the rewrite, for reasons I cannot determine.
>> What suprises me, though, is the "how can this ever has worked???" factor. 
>> Apparently the test passes on the current Cygwin setup on GHA. I have failed 
>> to reproduce the working conditions that makes a file actually unreadable 
>> for the owner on Windows, neither on my GHA test repo, nor locally. I've 
>> searched the web to figure out how to properly set file permissions on 
>> Windows to make the file unreadable, using Windows native tools, to no 
>> avail. I've even asked a [Stack Overflow 
>> question](https://stackoverflow.com/questions/72528318/what-file-permissions-make-a-file-unreadable-by-owner-in-windows);
>>  which as of yet is still unanswered.
>> Since I feel I've spent far more time than reasonable trying to get this to 
>> work properly, I suggest we instead skip the unreadable test on Windows. It 
>> is clearly unstable and highly depending on the Windows environment, the 
>> test was never originally supported or intended for Windows, and at the of 
>> the day, testing file unreadability is not an important regression test for 
>> [JDK-4354216](https://bugs.openjdk.org/browse/JDK-4354216).
> Thanks for the investigation, Magnus. I believe it is a bug to include the 
> Windows environment in refactoring the shell script to Java. Why it's been 
> working? No idea. Could be `IOException` has been thrown not by `unreadable` 
> but for some other reason?

> @naotoj Yes, that could be a likely possibility. Perhaps the file were never 
> created, or not in the expected place?

I'd guess something like that too. Anyways, eliminating this unreliability in 
test is a good clean up. Approving the fix assuming Jai's comment is addressed.


PR: https://git.openjdk.org/jdk/pull/9061

Reply via email to