RFR: JDK-8327474 Review use of java.io.tmpdir in jdk tests [v2]
Jaikiran Pai
jpai at openjdk.org
Thu Mar 21 14:44:20 UTC 2024
On Tue, 19 Mar 2024 17:58:46 GMT, Bill Huang <bhuang at openjdk.org> wrote:
>> This task addresses an essential aspect of our testing infrastructure: the proper handling and cleanup of temporary files and socket files created during test execution. The motivation behind these changes is to prevent the accumulation of unnecessary files in the default temporary directory, which can affect the system's storage and potentially influence subsequent test runs.
>>
>> Our review identified that several tests create temporary files or socket files without ensuring their removal post-execution.
>> - Direct calls to java.io.File.createTempFile and java.nio.file.Files.createTempFile without adequate cleanup.
>> - Tests using NIO socket channels with StandardProtocolFamily.UNIX, not explicitly removing socket files post-use.
>
> Bill Huang has updated the pull request incrementally with one additional commit since the last revision:
>
> Implemented review comments
test/jdk/com/sun/management/HotSpotDiagnosticMXBean/CheckOrigin.java line 57:
> 55:
> 56: File flagsFile = File.createTempFile("CheckOriginFlags", null);
> 57: flagsFile.deleteOnExit();
Hello Bill, jtreg uses a scratch directory when running tests. When a test is launched, the current working directory points to the scratch directory for the test that's currently executing. jtreg manages the lifecycle of scratch directories and even cleans them up (as necessary).
Would it instead be better to just create the temporary file within the jtreg scratch directory (represented by the current working directory)? That way you could just do:
File flagsFile = Files.createTempFile(Path.of("."), "CheckOriginFlags", null).toFile();
and don't need any explicit deletions?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/18352#discussion_r1534054951
More information about the nio-dev
mailing list