-
Notifications
You must be signed in to change notification settings - Fork 6.1k
JDK-8222323: ChildAlwaysOnTopTest.java fails with "RuntimeException: Failed to unset alwaysOnTop" #8509
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
👋 Welcome back honkar-jdk! A progress list of the required criteria for merging this PR into |
@honkar-jdk The following label will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command. |
Webrevs
|
saveScreenCapture(caseNo , 1); | ||
throw new RuntimeException("Scenario 1: alwaysOnTop window is "+ | ||
"sent back by another child window with setVisible(). " | ||
+ color); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see that we are doing a number of test scenarios but test fails immediately when first error occurs. Can we continue testing, save all screenshots and remember all the failures and then fail at the end if there were errors listing all the errors in all the LaF's that were happened during the run?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@azuev-java Thank you for the suggestion. I can definitely add this functionality to the test for better failure analysis.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that's a reasonable suggestion in general to bear in mind when writing tests.
I've seen tests which bail at the first failure and you wish you knew how the rest of it worked out ..
Like (say) a test that iterates over the 4 available L&Fs might be a case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@prrace Thank you for the inputs. Will make a note to add it for future similar test scenarios too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated test case to continue testing all scenarios and to throw Exception at the end (in case test fails in any of the scenarios)
}); | ||
System.out.println("Case "+ caseNo + errorMsg[scenarioNo - 1] | ||
+" Expected Color: "+ expectedColor +" vs Actual Color: " | ||
+ actualColor); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here instead of just printing out the error i would save it into the static StringBuilder that i would allocate at the beginning of the test. Then when we are concluding testing i would just check if the buffer is empty and if it is not i would throw an RuntimeException with the buffer content. This way we would have all the errors reported by the JavaTest suite in the HTML report and this will make it into the whatever testing environment report we are running tests in. Also that would replace the errorFlag variable since emptiness of the buffer will be an indication of test pass.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@azuev-java Thank you for the suggestion. I have updated the PR with the changes.
@honkar-jdk 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 20 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 (@prrace, @azuev-java) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
/integrate |
@honkar-jdk |
/sponsor |
Going to push as commit 837928b.
Your commit was automatically rebased without conflicts. |
@prrace @honkar-jdk Pushed as commit 837928b. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
This test case tests the functionality of
setAlwaysOnTop
.Documentation on
setAlwaysOnTop
: LinkThe following test case was seen to fail on windows and linux platforms. With the proposed fix, the test case works on all platforms.
The test case tests
alwaysOnTop
for the following three cases:Each of the three cases mentioned above is tested under 3 scenarios:

Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk pull/8509/head:pull/8509
$ git checkout pull/8509
Update a local copy of the PR:
$ git checkout pull/8509
$ git pull https://git.openjdk.java.net/jdk pull/8509/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 8509
View PR using the GUI difftool:
$ git pr show -t 8509
Using diff file
Download this PR as a diff file:
https://git.openjdk.java.net/jdk/pull/8509.diff