On Fri, 1 Sep 2023 14:33:52 GMT, Andy Goryachev <ango...@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?

No, let's not. While there may be some rare cases where randomness adds 
something useful to the test, automated tests should be predictable.

> 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

I recommend using `JMemoryBuddy`, which is what we use for all of our newer 
memory leak tests.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1228#discussion_r1313120071
PR Review Comment: https://git.openjdk.org/jfx/pull/1228#discussion_r1313120559

Reply via email to