| Index: tools/perf/measurements/oilpan_gc_times_unittest.py
|
| diff --git a/tools/perf/measurements/oilpan_gc_times_unittest.py b/tools/perf/measurements/oilpan_gc_times_unittest.py
|
| index ae359758d27c9db6134da4adb7f6fb445c8732b5..1d20ec22b8462202476d3cfd0123f60baa118c2b 100644
|
| --- a/tools/perf/measurements/oilpan_gc_times_unittest.py
|
| +++ b/tools/perf/measurements/oilpan_gc_times_unittest.py
|
| @@ -3,6 +3,7 @@
|
| # found in the LICENSE file.
|
|
|
| from measurements import oilpan_gc_times
|
| +from telemetry.timeline.event import TimelineEvent
|
| from telemetry.unittest_util import options_for_unittests
|
| from telemetry.unittest_util import page_test_test_case
|
|
|
| @@ -16,6 +17,71 @@ class OilpanGCTimesTest(page_test_test_case.PageTestTestCase):
|
| def setUp(self):
|
| self._options = options_for_unittests.GetCopy()
|
|
|
| + def testForParsing(self):
|
| + def getMetric(results, name):
|
| + metrics = results.FindAllPageSpecificValuesNamed(name)
|
| + self.assertEquals(1, len(metrics))
|
| + return metrics[0].GetBuildbotValue()
|
| +
|
| + parser = oilpan_gc_times._OilpanGCTimesBase()
|
| + events = [TimelineEvent('', 'Heap::collectGarbage', 0, 0, 11, 18,
|
| + {'precise': True, 'forced': False}),
|
| + TimelineEvent('', 'ThreadHeap::lazySweepPages', 0, 0, 11, 18),
|
| + TimelineEvent('', 'ThreadHeap::coalesce', 0, 0, 11, 18),
|
| + TimelineEvent('', 'ThreadHeap::lazySweepPages', 0, 0, 11, 18),
|
| + TimelineEvent('', 'ThreadHeap::coalesce', 0, 0, 11, 18),
|
| + TimelineEvent('', 'ThreadState::completeSweep', 0, 0, 11, 18),
|
| + TimelineEvent('', 'Heap::collectGarbage', 0, 0, 11, 18,
|
| + {'precise': True, 'forced': False}),
|
| + TimelineEvent('', 'ThreadHeap::lazySweepPages', 0, 0, 11, 18),
|
| + TimelineEvent('', 'ThreadHeap::coalesce', 0, 0, 11, 18),
|
| + TimelineEvent('', 'ThreadState::completeSweep', 0, 0, 11, 18),
|
| + TimelineEvent('', 'Heap::collectGarbage', 0, 0, 11, 18,
|
| + {'precise': False, 'forced': False}),
|
| + TimelineEvent('', 'ThreadHeap::lazySweepPages', 0, 180, 11, 18),
|
| + TimelineEvent('', 'ThreadHeap::coalesce', 0, 0, 11, 18),
|
| + TimelineEvent('', 'ThreadState::completeSweep', 0, 0, 11, 18),
|
| + TimelineEvent('', 'Heap::collectGarbage', 0, 0, 11, 18,
|
| + {'precise': True, 'forced': False}),
|
| + TimelineEvent('', 'ThreadHeap::lazySweepPages', 0, 0, 11, 18),
|
| + TimelineEvent('', 'ThreadHeap::coalesce', 0, 0, 11, 18),
|
| + TimelineEvent('', 'ThreadState::completeSweep', 0, 0, 11, 18),
|
| + TimelineEvent('', 'Heap::collectGarbage', 0, 0, 11, 18,
|
| + {'precise': False, 'forced': True}),
|
| + TimelineEvent('', 'ThreadHeap::coalesce', 0, 0, 11, 18),
|
| + TimelineEvent('', 'ThreadHeap::lazySweepPages', 0, 0, 11, 18),
|
| + TimelineEvent('', 'ThreadState::completeSweep', 0, 0, 11, 18),
|
| + TimelineEvent('', 'Heap::collectGarbage', 0, 0, 11, 18,
|
| + {'precise': True, 'forced': True}),
|
| + TimelineEvent('', 'ThreadHeap::coalesce', 0, 0, 11, 18),
|
| + TimelineEvent('', 'ThreadHeap::lazySweepPages', 0, 0, 11, 18),
|
| + TimelineEvent('', 'ThreadState::completeSweep', 0, 0, 11, 18)]
|
| +
|
| + results = parser._ParseEventsForTest(events, False, options=self._options)
|
| + self.assertEquals(7, len(getMetric(results, 'oilpan_coalesce')))
|
| + self.assertEquals(3, len(getMetric(results, 'oilpan_precise_mark')))
|
| + self.assertEquals(3, len(getMetric(results, 'oilpan_precise_lazy_sweep')))
|
| + self.assertEquals(3, len(getMetric(results,
|
| + 'oilpan_precise_complete_sweep')))
|
| + self.assertEquals(1, len(getMetric(results, 'oilpan_conservative_mark')))
|
| + self.assertEquals(1, len(getMetric(results,
|
| + 'oilpan_conservative_lazy_sweep')))
|
| + self.assertEquals(1, len(getMetric(results,
|
| + 'oilpan_conservative_complete_sweep')))
|
| +
|
| + # Include forced GC events
|
| + results = parser._ParseEventsForTest(events, True, options=self._options)
|
| + self.assertEquals(7, len(getMetric(results, 'oilpan_coalesce')))
|
| + self.assertEquals(4, len(getMetric(results, 'oilpan_precise_mark')))
|
| + self.assertEquals(4, len(getMetric(results, 'oilpan_precise_lazy_sweep')))
|
| + self.assertEquals(4, len(getMetric(results,
|
| + 'oilpan_precise_complete_sweep')))
|
| + self.assertEquals(2, len(getMetric(results, 'oilpan_conservative_mark')))
|
| + self.assertEquals(2, len(getMetric(results,
|
| + 'oilpan_conservative_lazy_sweep')))
|
| + self.assertEquals(2, len(getMetric(results,
|
| + 'oilpan_conservative_complete_sweep')))
|
| +
|
| def testForSmoothness(self):
|
| ps = self.CreatePageSetFromFileInUnittestDataDir('create_many_objects.html')
|
| measurement = oilpan_gc_times.OilpanGCTimesForSmoothness()
|
|
|