RFR: 8342270: Test sun/security/pkcs11/Provider/RequiredMechCheck.java needs write access to src tree
Fernando Guallini
fguallini at openjdk.org
Thu Oct 24 09:00:06 UTC 2024
On Wed, 23 Oct 2024 19:51:24 GMT, Rajan Halade <rhalade at openjdk.org> wrote:
>> The test sun/security/pkcs11/Provider/RequiredMechCheck.java extends sun/security/pkcs11/PKCS11Test.java, which sets up a PKCS11Provider configured with NSS config files located in the source tree directory (sun/security/pkcs11/nss) for the dependent tests to run properly. This test currently fails if that **pkcs11/nss** directory is made read-only because these config files are updated during the test execution. Files located in the source tree should not be modified when running tests.
>> This PR updates the PKCS11Test to copy the NSS config files to the Jtreg scratch directory and configures the provider to use those files instead.
>
> test/jdk/sun/security/pkcs11/PKCS11Test.java line 526:
>
>> 524: String nss = "nss";
>> 525: Path nssDirSource = Path.of(base).resolve(nss);
>> 526: String nssDirDestination = Path.of(".").resolve(nss).toString();
>
> Using current directory here may be incorrect. Can this be changed to `Path.of(System.getProperty("test.classes"), ".")`
The "test.classes" directory contains the compiled classes according to [jtreg doc](https://openjdk.org/jtreg/tag-spec.html#testvars).
Whereas, the current directory is the [Jtreg scratch](https://openjdk.org/jtreg/faq.html#scratch-directory) directory, which is the right place for the tests temporary files. Also, Jtreg will automatically clean this directory when the test begins.
The scratch directory does seem like the best place to store these temporary configuration files.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21665#discussion_r1814568986
More information about the security-dev
mailing list