Bug 298952 - [Progress] ProgressMonitorDialogPerformanceTest#testLongNames() runs too short on windows test machines
Summary: [Progress] ProgressMonitorDialogPerformanceTest#testLongNames() runs too shor...
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.6   Edit
Hardware: PC Windows XP
: P4 minor (vote)
Target Milestone: 3.7 M7   Edit
Assignee: Oleg Besedin CLA
QA Contact: Oleg Besedin CLA
URL:
Whiteboard:
Keywords: performance, test
Depends on:
Blocks: 313891
  Show dependency tree
 
Reported: 2010-01-06 10:07 EST by Frederic Fusier CLA
Modified: 2011-05-04 08:00 EDT (History)
4 users (show)

See Also:


Attachments
Patch (2.88 KB, patch)
2011-04-20 14:21 EDT, Oleg Besedin CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Frederic Fusier CLA 2010-01-06 10:07:09 EST
Verifying performance results for all 3.6M4 scenarios, it appeared that the 
ProgressMonitorDialogPerformanceTest#testLongNames() tests lasts less than 5 milli-seconds on the windows perf test machines.

This is not enough to have meaningful results. Strangely, the same test duration is around 100ms on the Linux machines which is correct...
Comment 1 Dani Megert CLA 2010-01-06 10:19:12 EST
Most likely not a regression. Time permitting.
Comment 2 Frederic Fusier CLA 2010-04-13 10:46:19 EDT
This test belongs to org.eclipse.jface component...
Comment 3 Prakash Rangaraj CLA 2010-05-31 23:57:58 EDT
This one is not for 3.6. Moving to 3.7
Comment 4 Oleg Besedin CLA 2011-04-20 14:21:32 EDT
Created attachment 193734 [details]
Patch

The test was originally added for bug 207188.

Changed test to measure multiple (30) text set calls on performance monitor dialog in multiple (20) groups. 

I added degradation comment as the test results will no longer be comparable with 3.6 and there is not much point to backport those test changes into 3.6.

As a note, the GC.textExtent() is still called a lot: 250 times for the test string per each Dialog.shortenText() call. It originally tries to to remove chars 277 - 9724 but has to do ~250 iterations to arrive at the actual number of chars to be removed (27-9974). The real-life effects won't be as profound: few people will have 10K chars text on the progress dialog.
Comment 5 Oleg Besedin CLA 2011-04-20 14:34:07 EDT
Patch applied to CVS Head.
Comment 6 Oleg Besedin CLA 2011-04-26 09:49:16 EDT
Verified that the test duration in I20110424-2000 build is about 100ms - 150ms and that comparison results are properly grayed out.
Comment 7 Satyam Kandula CLA 2011-05-04 04:48:08 EDT
(In reply to comment #4)
Can this test be updated on the baseline too? I think that will be the ideal way rather than using a comment.
Comment 8 Frederic Fusier CLA 2011-05-04 07:10:44 EDT
(In reply to comment #7)
> (In reply to comment #4)
> Can this test be updated on the baseline too? I think that will be the ideal
> way rather than using a comment.

No, existing baseline tests should never be changed, otherwise the baseline could not longer be considered as a stable reference... The only change allowed on baseline stream is to add a new test.

So, the only solution in this case is to use a comment to gray the test result...
Comment 9 Dani Megert CLA 2011-05-04 07:18:48 EDT
(In reply to comment #8)
> (In reply to comment #7)
> > (In reply to comment #4)
> > Can this test be updated on the baseline too? I think that will be the ideal
> > way rather than using a comment.
> 
> No, existing baseline tests should never be changed, otherwise the baseline
> could not longer be considered as a stable reference... The only change allowed
> on baseline stream is to add a new test.
> 
> So, the only solution in this case is to use a comment to gray the test
> result...

I agree in principle but keeping a useless stable reference doesn't buy us much, hence I'd tend to fix the baseline.
Comment 10 Frederic Fusier CLA 2011-05-04 07:27:30 EDT
(In reply to comment #9)
> (In reply to comment #8)
> > (In reply to comment #7)
> > > (In reply to comment #4)
> > > Can this test be updated on the baseline too? I think that will be the ideal
> > > way rather than using a comment.
> > 
> > No, existing baseline tests should never be changed, otherwise the baseline
> > could not longer be considered as a stable reference... The only change allowed
> > on baseline stream is to add a new test.
> > 
> > So, the only solution in this case is to use a comment to gray the test
> > result...
> 
> I agree in principle but keeping a useless stable reference doesn't buy us
> much, hence I'd tend to fix the baseline.

I you definitely think it's necessary, then do it. But be careful during the verification process as the tool has high probabilities to identify this test as not reliable because of its baseline instability (due to the big variation in the baseline test results history). If that was the case, this test would be removed from the current status and no regression could be detected on it...
Comment 11 Dani Megert CLA 2011-05-04 08:00:10 EDT
To reduce confusion we could also delete the test and add it under a new name.