On Fri, 23 Feb 2024 21:55:15 GMT, Chris Plummer <cjplum...@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. aha, sanity restored. This test uses JMXExecutor for the tests. If I make one of them use new PidJcmdExecutor() instead, the output is captured as we expect. But then it fails because there is some output there, like... ---------------- stdout ---------------- 28821: Command executed successfully ---------------- stderr ---------------- ---------------------------------------- This looks like a separate issue 8-) ------------- PR Comment: https://git.openjdk.org/jdk/pull/17992#issuecomment-1971081565