rasterize_and_record_micro_unittest.py revision 4ad1aa43a48567659193a298fad74f55e00b3dd9
1a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved. 2a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 3a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)# found in the LICENSE file. 44ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch 54ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdochimport logging 64ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch 7a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)from measurements import rasterize_and_record_micro 85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)from telemetry import test 9a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)from telemetry.core import wpr_modes 10a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)from telemetry.page import page_measurement_unittest_base 114ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdochfrom telemetry.page import page_test 12a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)from telemetry.unittest import options_for_unittests 13a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 14a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 15a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)class RasterizeAndRecordMicroUnitTest( 16a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) page_measurement_unittest_base.PageMeasurementUnitTestBase): 17a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) """Smoke test for rasterize_and_record_micro measurement 18a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 19a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) Runs rasterize_and_record_micro measurement on a simple page and verifies 20a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) that all metrics were added to the results. The test is purely functional, 21a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) i.e. it only checks if the metrics are present and non-zero. 22a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) """ 23a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 24a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) def setUp(self): 25a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) self._options = options_for_unittests.GetCopy() 26a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF 27a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) self._options.rasterize_repeat = 1 28a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) self._options.record_repeat = 1 29a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) self._options.start_wait_time = 0.0 30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) self._options.report_detailed_results = True 31a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) @test.Disabled 33a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) def testRasterizeAndRecordMicro(self): 34a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) ps = self.CreatePageSetFromFileInUnittestDataDir('blank.html') 35a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) measurement = rasterize_and_record_micro.RasterizeAndRecordMicro() 364ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch try: 374ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch results = self.RunMeasurement(measurement, ps, options=self._options) 384ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch except page_test.TestNotSupportedOnPlatformFailure as failure: 394ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch logging.warning(str(failure)) 404ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch return 41a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) self.assertEquals(0, len(results.failures)) 42a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 43a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) rasterize_time = results.FindAllPageSpecificValuesNamed('rasterize_time') 44a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) self.assertEquals(len(rasterize_time), 1) 45a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) self.assertGreater(rasterize_time[0].GetRepresentativeNumber(), 0) 46a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 47a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) record_time = results.FindAllPageSpecificValuesNamed('record_time') 48a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) self.assertEquals(len(record_time), 1) 49a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) self.assertGreater(record_time[0].GetRepresentativeNumber(), 0) 50a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 51a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) rasterized_pixels = results.FindAllPageSpecificValuesNamed( 52a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 'pixels_rasterized') 53a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) self.assertEquals(len(rasterized_pixels), 1) 54a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) self.assertGreater(rasterized_pixels[0].GetRepresentativeNumber(), 0) 55a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 56a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) recorded_pixels = results.FindAllPageSpecificValuesNamed('pixels_recorded') 57a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) self.assertEquals(len(recorded_pixels), 1) 58a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) self.assertGreater(recorded_pixels[0].GetRepresentativeNumber(), 0) 59a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 60a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) pixels_rasterized_with_non_solid_color = \ 61a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) results.FindAllPageSpecificValuesNamed( 62a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 'pixels_rasterized_with_non_solid_color') 63a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) self.assertEquals(len(pixels_rasterized_with_non_solid_color), 1) 64a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) self.assertGreater( 65a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) pixels_rasterized_with_non_solid_color[0].GetRepresentativeNumber(), 0) 66a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 67a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) pixels_rasterized_as_opaque = \ 68a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) results.FindAllPageSpecificValuesNamed('pixels_rasterized_as_opaque') 69a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) self.assertEquals(len(pixels_rasterized_as_opaque), 1) 70a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) self.assertGreater( 71a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) pixels_rasterized_as_opaque[0].GetRepresentativeNumber(), 0) 72a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 73a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) total_layers = results.FindAllPageSpecificValuesNamed('total_layers') 74a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) self.assertEquals(len(total_layers), 1) 75a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) self.assertGreater(total_layers[0].GetRepresentativeNumber(), 0) 76a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 77a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) total_picture_layers = \ 78a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) results.FindAllPageSpecificValuesNamed('total_picture_layers') 79a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) self.assertEquals(len(total_picture_layers), 1) 80a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) self.assertGreater(total_picture_layers[0].GetRepresentativeNumber(), 0) 81a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 82a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) total_picture_layers_with_no_content = \ 83a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) results.FindAllPageSpecificValuesNamed( 84a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 'total_picture_layers_with_no_content') 85a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) self.assertEquals(len(total_picture_layers_with_no_content), 1) 86a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) self.assertGreater( 87a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) total_picture_layers_with_no_content[0].GetRepresentativeNumber(), 0) 88a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 89a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) total_picture_layers_off_screen = \ 90a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) results.FindAllPageSpecificValuesNamed( 91a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 'total_picture_layers_off_screen') 92a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) self.assertEquals(len(total_picture_layers_off_screen), 1) 93a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) self.assertEqual( 94a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) total_picture_layers_off_screen[0].GetRepresentativeNumber(), 0) 95a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 96a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 97