8379411: Use TestFramework scenarios in 837841#30116
8379411: Use TestFramework scenarios in 837841#30116krk wants to merge 3 commits intoopenjdk:masterfrom
Conversation
|
👋 Welcome back krk! A progress list of the required criteria for merging this PR into |
|
@krk This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be: You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 22 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@merykitty, @dafedafe, @chhagedorn) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
Webrevs
|
merykitty
left a comment
There was a problem hiding this comment.
Looks good to me, you may not need a second reviewer for this. Let me run some quick test just to ensure it does not break in release somehow.
| TestFramework.run(); | ||
| var framework = new TestFramework(); | ||
| framework.addScenarios(new Scenario(0)); | ||
| framework.addScenarios(new Scenario(1, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:VerifyIterativeGVN=1110")); |
There was a problem hiding this comment.
Would scenario 1 be the same as scenario 0 in prod builds?
There was a problem hiding this comment.
Yes, is there a way to collapse them in prod?
There was a problem hiding this comment.
Not sure if there is a "built-in" way but you could always check with Platform.isDebugBuild().
| * @run driver ${test.main.class} | ||
| * @run driver ${test.main.class} -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions | ||
| * -XX:VerifyIterativeGVN=1110 -Xbatch -XX:CompileCommand=compileonly,${test.main.class}::* | ||
| * @run main ${test.main.class} |
There was a problem hiding this comment.
I lost a sight of what the "convention" for the IR framework is: could it be @run driver?
There was a problem hiding this comment.
I'm not so sure about the intricacies, but I think(?) run main is cheaper, because you don't need to spawn another VM, which will spawn another VM that runs the tests?
There was a problem hiding this comment.
Both seem to work, is there a preferred one, what do you think @merykitty?
There was a problem hiding this comment.
(didn't see your comment before posting mine)
There was a problem hiding this comment.
It can definitely be (I'm just mentioning this because I remember having read it somewhere... but I'm not sure how up-to-date that is).
There was a problem hiding this comment.
Update: After asking the expert, it is advisable to run IR tests with run driver. The reason is that when you pass additional flags to the test (e.g. in higher tier), with run main the flags are received by both the driver VM and the test VM, while with run driver, only the test VM receives the additional flags, which makes it more efficient, especially when those flags are stress ones.
chhagedorn
left a comment
There was a problem hiding this comment.
Looks good, thanks for following up on the test!
|
/integrate Thanks! |
|
/sponsor |
|
Going to push as commit 2fc7bdc.
Your commit was automatically rebased without conflicts. |
|
@chhagedorn @krk Pushed as commit 2fc7bdc. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
Use
TestFrameworkscenarios to properly pass VM flags for VerifyIterativeGVN inMissedURShiftIAddILShiftIdeal.Progress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/30116/head:pull/30116$ git checkout pull/30116Update a local copy of the PR:
$ git checkout pull/30116$ git pull https://git.openjdk.org/jdk.git pull/30116/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 30116View PR using the GUI difftool:
$ git pr show -t 30116Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/30116.diff
Using Webrev
Link to Webrev Comment