RFR: 8315317: Add test for JDK-8262518

Andy Goryachev angorya at openjdk.org
Fri Sep 1 14:37:49 UTC 2023


On Fri, 1 Sep 2023 03:16:11 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:

> Added automated test for 8262518:SwingNode.setContent does not close previous content, resulting in memory leak

tests/system/src/test/java/test/javafx/embed/swing/SwingNodeContentMemoryLeakTest.java line 94:

> 92:                 //Lets throw in a little sleep so we can read the output
> 93:                 try {
> 94:                     Thread.sleep(100);

I would suggest to use random delay here (random.nextInt(100)).
But make sure to set a random seed at the beginning and print it so it can be reproduced.  Although in this test, the outcome depends on many things that the test has no control over.
What do you think?

tests/system/src/test/java/test/javafx/embed/swing/SwingNodeContentMemoryLeakTest.java line 108:

> 106:                                                      ref.get() != null).count();
> 107:                 // Sometimes panel count can shoot upto more than 3 once or twice
> 108:                 // due to gc not being guranteed so this check prevents false failure

guaranteed

tests/system/src/test/java/test/javafx/embed/swing/SwingNodeContentMemoryLeakTest.java line 116:

> 114:                 System.out.println("iteration " + count + " Panels in memory: "
> 115:                                                + panelCount + " fail " + fail);
> 116:                 assertFalse(fail > 2);

I actually seen the  number to shoot up to 38 (albeit with Thread.sleep(1)).  I wonder if there is a better way to detect failure?  May be the fact that the 'panelCount` is ever increasing is the sign of failure, whereas if at least one time it's dropping we have succeeded.
Or perhaps look at the count when the test complete and fail if panelCount < (attempts / 2) or something

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1228#discussion_r1313115716
PR Review Comment: https://git.openjdk.org/jfx/pull/1228#discussion_r1313099511
PR Review Comment: https://git.openjdk.org/jfx/pull/1228#discussion_r1313112869


More information about the openjfx-dev mailing list