X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Ftools%2Fperf%2Fmeasurements%2Fpage_cycler_unittest.py;h=e797f2a737404d85cf0fb08137246df2f35e0e80;hb=004985e17e624662a4c85c76a7654039dc83f028;hp=e83eb104d9157e4d16f363b59bfb2c58cf5ddb2b;hpb=2f108dbacb161091e42a3479f4e171339b7e7623;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/tools/perf/measurements/page_cycler_unittest.py b/src/tools/perf/measurements/page_cycler_unittest.py index e83eb10..e797f2a 100644 --- a/src/tools/perf/measurements/page_cycler_unittest.py +++ b/src/tools/perf/measurements/page_cycler_unittest.py @@ -6,6 +6,7 @@ import unittest from telemetry.core import browser_options from telemetry.page import page_measurement_results +from telemetry.page import page_runner from telemetry.unittest import simple_mock from measurements import page_cycler @@ -52,15 +53,33 @@ class FakeTab(object): pass +class FakeBrowser(object): + _iteration = 0 + + @property + def cpu_stats(self): + FakeBrowser._iteration += 1 + return { + 'Browser': {'CpuProcessTime': FakeBrowser._iteration, + 'TotalTime': FakeBrowser._iteration * 2}, + 'Renderer': {'CpuProcessTime': FakeBrowser._iteration, + 'TotalTime': FakeBrowser._iteration * 3}, + 'Gpu': {'CpuProcessTime': FakeBrowser._iteration, + 'TotalTime': FakeBrowser._iteration * 4} + } + + class PageCyclerUnitTest(unittest.TestCase): def SetUpCycler(self, args, setup_memory_module=False): cycler = page_cycler.PageCycler() options = browser_options.BrowserFinderOptions() parser = options.CreateParser() + page_runner.AddCommandLineArgs(parser) cycler.AddCommandLineArgs(parser) cycler.SetArgumentDefaults(parser) parser.parse_args(args) + page_runner.ProcessCommandLineArgs(parser, options) cycler.ProcessCommandLineArgs(parser, options) cycler.CustomizeBrowserOptions(options) @@ -76,7 +95,7 @@ class PageCyclerUnitTest(unittest.TestCase): real_memory_module = page_cycler.memory try: page_cycler.memory = mock_memory_module - cycler.DidStartBrowser(None) + cycler.DidStartBrowser(FakeBrowser()) finally: page_cycler.memory = real_memory_module @@ -103,7 +122,7 @@ class PageCyclerUnitTest(unittest.TestCase): '--cold-load-percent=50'], True) - url_name = "http://fakepage.com" + url_name = 'http://fakepage.com' page = FakePage(url_name) tab = FakeTab() results = page_measurement_results.PageMeasurementResults() @@ -111,7 +130,7 @@ class PageCyclerUnitTest(unittest.TestCase): for i in range(5): cycler.WillNavigateToPage(page, tab) self.assertEqual(max(0, i - 2), tab.clear_cache_calls, - "Iteration %d tab.clear_cache_calls %d" % + 'Iteration %d tab.clear_cache_calls %d' % (i, tab.clear_cache_calls)) results.WillMeasurePage(page) cycler.MeasurePage(page, tab, results) @@ -119,9 +138,9 @@ class PageCyclerUnitTest(unittest.TestCase): values = results.page_specific_values_for_current_page results.DidMeasurePage() - self.assertEqual(1, len(values)) - self.assertEqual(values[0].page, page) + self.assertGreater(len(values), 2) + self.assertEqual(values[0].page, page) chart_name = 'cold_times' if i == 0 or i > 2 else 'warm_times' self.assertEqual(values[0].name, '%s.page_load_time' % chart_name) self.assertEqual(values[0].units, 'ms') @@ -130,7 +149,7 @@ class PageCyclerUnitTest(unittest.TestCase): def testColdWarm(self): cycler = self.SetUpCycler(['--pageset-repeat=3'], True) - pages = [FakePage("http://fakepage1.com"), FakePage("http://fakepage2.com")] + pages = [FakePage('http://fakepage1.com'), FakePage('http://fakepage2.com')] tab = FakeTab() results = page_measurement_results.PageMeasurementResults() for i in range(3): @@ -142,10 +161,44 @@ class PageCyclerUnitTest(unittest.TestCase): values = results.page_specific_values_for_current_page results.DidMeasurePage() - self.assertEqual(1, len(values)) + self.assertGreater(len(values), 2) + self.assertEqual(values[0].page, page) chart_name = 'cold_times' if i == 0 or i > 1 else 'warm_times' self.assertEqual(values[0].name, '%s.page_load_time' % chart_name) + self.assertEqual(values[0].units, 'ms') + + cycler.DidNavigateToPage(page, tab) + + def testResults(self): + cycler = self.SetUpCycler([], True) + + pages = [FakePage('http://fakepage1.com'), FakePage('http://fakepage2.com')] + tab = FakeTab() + results = page_measurement_results.PageMeasurementResults() + + for i in range(2): + for page in pages: + cycler.WillNavigateToPage(page, tab) + results.WillMeasurePage(page) + cycler.MeasurePage(page, tab, results) + + values = results.page_specific_values_for_current_page + results.DidMeasurePage() + + self.assertEqual(4, len(values)) + + self.assertEqual(values[0].page, page) + chart_name = 'cold_times' if i == 0 else 'warm_times' + self.assertEqual(values[0].name, '%s.page_load_time' % chart_name) + self.assertEqual(values[0].units, 'ms') + + for value, expected in zip(values[1:], ['gpu', 'renderer', 'browser']): + self.assertEqual(value.page, page) + self.assertEqual(value.name, + 'cpu_utilization.cpu_utilization_%s' % expected) + self.assertEqual(value.units, '%') + cycler.DidNavigateToPage(page, tab)