RFR: 8325532: serviceability/dcmd/compiler/PerfMapTest.java leaves created files in the /tmp dir.

Leonid Mesnik lmesnik at openjdk.org
Fri Mar 1 23:49:51 UTC 2024


On Fri, 23 Feb 2024 21:55:15 GMT, Chris Plummer <cjplummer at openjdk.org> wrote:

> PerfMapTest.java issues the Compiler.perfmap jcmd with a filename argument to write the perfmap to. It does this in 3 different modes. 2 of the modes result in a perfmap file being left in the tmp directory that is not removed after the test executes (and should be removed). The 3rd mode creates the perfmap file in the directory specified by the test.dir property, and is ok to leave the file there. I've added code to delete the /tmp files that are created.
> 
> I did a bit of extra testing by hand. I created `/tmp/perf-<pid>.map` as root. As expected the Files.deleteIfExists() call threw an exception due to the lack of permissions to delete the file. However, I then realized the file had a size of 0, which means the test was not even doing a proper job of testing that the perfrmap jcmd was working. In other words, the test should have failed long before getting to the Files.deleteIfExists(), so I added a size check to make sure it fails when the file is not written to.

I thought about execution of   Files.deleteIfExists(path) in the case of test fails, but decided that it is not so important. Also, test always might fail with crash when no finally block is executed. So I am fine with current way.

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

PR Comment: https://git.openjdk.org/jdk/pull/17992#issuecomment-1974089555


More information about the serviceability-dev mailing list