예제 #1
0
 def CreatePageSet(self, options):
     page_set_path = os.path.join(util.GetChromiumSrcDir(), 'tools', 'perf',
                                  'page_sets')
     ps = page_set_module.PageSet(archive_data_file='data/maps.json',
                                  base_dir=page_set_path,
                                  bucket=page_set_module.PUBLIC_BUCKET)
     ps.AddUserStory(MapsPage(ps, ps.base_dir))
     return ps
 def testAbsoluteExpectations(self):
   ps = page_set.PageSet()
   page = page_module.Page('http://test.com/page5.html', ps)
   page_org = page_module.Page('http://test.org/page5.html', ps)
   page_https = page_module.Page('https://test.com/page5.html', ps)
   self.assertExpectationEquals('fail', StubPlatform('win'), page)
   self.assertExpectationEquals('pass', StubPlatform('win'), page_org)
   self.assertExpectationEquals('pass', StubPlatform('win'), page_https)
예제 #3
0
 def testGetUrlBaseDirAndFileForUrlBaseDir(self):
     base_dir = os.path.dirname(__file__)
     file_path = os.path.join(os.path.dirname(base_dir), 'otherdir',
                              'file.html')
     ps = page_set.PageSet(base_dir=base_dir,
                           serving_dirs=[os.path.join('..', 'somedir', '')])
     ps.AddUserStory(
         page.Page('file://../otherdir/file.html', ps, ps.base_dir))
     self.assertPathEqual(ps[0].file_path, file_path)
예제 #4
0
    def testDisplayUrlForFileDirectories(self):
        ps = page_set.PageSet(base_dir=os.path.dirname(__file__))
        ps.AddUserStory(page.Page('file://../../otherdir/foo', ps,
                                  ps.base_dir))
        ps.AddUserStory(page.Page('file://../../otherdir/bar', ps,
                                  ps.base_dir))

        self.assertEquals(ps[0].display_name, 'foo')
        self.assertEquals(ps[1].display_name, 'bar')
예제 #5
0
    def testDisplayUrlForFileOfDifferentPaths(self):
        ps = page_set.PageSet(base_dir=os.path.dirname(__file__))
        ps.AddUserStory(
            page.Page('file://../../somedir/foo.html', ps, ps.base_dir))
        ps.AddUserStory(
            page.Page('file://../../otherdir/bar.html', ps, ps.base_dir))

        self.assertEquals(ps[0].display_name, 'somedir/foo.html')
        self.assertEquals(ps[1].display_name, 'otherdir/bar.html')
예제 #6
0
    def testDisplayUrlForFilesDifferingBySuffix(self):
        ps = page_set.PageSet(base_dir=os.path.dirname(__file__))
        ps.AddUserStory(
            page.Page('file://../../otherdir/foo.html', ps, ps.base_dir))
        ps.AddUserStory(
            page.Page('file://../../otherdir/foo1.html', ps, ps.base_dir))

        self.assertEquals(ps[0].display_name, 'foo.html')
        self.assertEquals(ps[1].display_name, 'foo1.html')
 def setUp(self):
     ps = page_set.PageSet(file_path=os.path.dirname(__file__))
     ps.AddUserStory(
         page_module.Page('http://www.bar.com/', ps, ps.base_dir))
     ps.AddUserStory(
         page_module.Page('http://www.baz.com/', ps, ps.base_dir))
     ps.AddUserStory(
         page_module.Page('http://www.foo.com/', ps, ps.base_dir))
     self.page_set = ps
예제 #8
0
 def CreatePageSet(self, options):
   ps = page_set.PageSet(
     archive_data_file='../page_sets/data/octane.json',
     file_path=os.path.abspath(__file__),
     bucket=page_set.PUBLIC_BUCKET)
   ps.AddUserStory(page_module.Page(
       'http://octane-benchmark.googlecode.com/svn/latest/index.html?auto=1',
       ps, ps.base_dir, make_javascript_deterministic=False))
   return ps
 def FinalizeImport(self):
     self._model.FinalizeImport()
     self._threads_to_records_map = (
         tbm_module._GetRendererThreadsToInteractionRecordsMap(self._model))
     self._ps = page_set.PageSet(file_path=os.path.dirname(__file__))
     self._ps.AddUserStory(
         page_module.Page('http://www.bar.com/', self._ps,
                          self._ps.base_dir))
     self._results.WillRunPage(self._ps.pages[0])
예제 #10
0
 def CreatePageSet(self, options):
   ps = page_set.PageSet(
     archive_data_file='../page_sets/data/kraken.json',
     base_dir=os.path.dirname(os.path.abspath(__file__)),
     bucket=page_set.PARTNER_BUCKET)
   ps.AddUserStory(page_module.Page(
       'http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html',
       ps, ps.base_dir))
   return ps
예제 #11
0
 def CreatePageSet(self, options):
     page_set_path = os.path.join(util.GetChromiumSrcDir(), 'content',
                                  'test', 'gpu', 'page_sets')
     ps = page_set.PageSet(archive_data_file='data/maps.json',
                           make_javascript_deterministic=False,
                           file_path=page_set_path,
                           bucket=page_set.PUBLIC_BUCKET)
     ps.AddPage(MapsPage(ps, ps.base_dir))
     return ps
예제 #12
0
 def CreatePageSet(self, options):
     ps = page_set.PageSet(
         archive_data_file='../page_sets/data/robohornet_pro.json',
         # Measurement require use of real Date.now() for measurement.
         make_javascript_deterministic=False,
         file_path=os.path.abspath(__file__))
     ps.AddPageWithDefaultRunNavigate(
         'http://ie.microsoft.com/testdrive/performance/robohornetpro/')
     return ps
예제 #13
0
 def CreatePageSet(self, options):
   page_set_path = os.path.join(
       util.GetChromiumSrcDir(), 'tools', 'perf', 'page_sets')
   ps = page_set_module.PageSet(
     archive_data_file='data/maps.json',
     make_javascript_deterministic=False,
     file_path=page_set_path)
   ps.AddPage(MapsPage(ps, ps.base_dir))
   return ps
예제 #14
0
 def CreatePageSet(self, options):
     ps = page_set.PageSet(
         archive_data_file='../page_sets/data/octane.json',
         make_javascript_deterministic=False,
         file_path=os.path.abspath(__file__))
     ps.AddPageWithDefaultRunNavigate(
         'http://octane-benchmark.googlecode.com/svn/latest/index.html?auto=1'
     )
     return ps
예제 #15
0
  def testCloudBucket(self):
    blank_ps = page_set.PageSet()
    expected_bucket = None
    self.assertEqual(blank_ps.bucket, expected_bucket)

    public_ps = page_set.PageSet(bucket=page_set.PUBLIC_BUCKET)
    expected_bucket = cloud_storage.PUBLIC_BUCKET
    self.assertEqual(public_ps.bucket, expected_bucket)

    partner_ps = page_set.PageSet(bucket=page_set.PARTNER_BUCKET)
    expected_bucket = cloud_storage.PARTNER_BUCKET
    self.assertEqual(partner_ps.bucket, expected_bucket)

    internal_ps = page_set.PageSet(bucket=page_set.INTERNAL_BUCKET)
    expected_bucket = cloud_storage.INTERNAL_BUCKET
    self.assertEqual(internal_ps.bucket, expected_bucket)

    self.assertRaises(ValueError, page_set.PageSet, bucket='garbage_bucket')
예제 #16
0
 def CreatePageSet(self, options):
   ps = page_set.PageSet(
       archive_data_file='../page_sets/data/jetstream.json',
       base_dir=os.path.dirname(os.path.abspath(__file__)),
       bucket=page_set.INTERNAL_BUCKET)
   ps.AddUserStory(page_module.Page(
       'http://browserbench.org/JetStream/', ps, ps.base_dir,
       make_javascript_deterministic=False))
   return ps
예제 #17
0
 def CreatePageSet(self, options):
     dom_perf_dir = os.path.join(util.GetChromiumSrcDir(), 'data',
                                 'dom_perf')
     ps = page_set.PageSet(base_dir=dom_perf_dir)
     for param in self.RUN_PARAMS:
         ps.AddUserStory(
             page_module.Page('file://run.html?reportInJS=1&run=%s' % param,
                              ps, ps.base_dir))
     return ps
예제 #18
0
 def TestUseLiveSitesFlag(self, expected_wpr_mode):
     with tempfile.NamedTemporaryFile() as f:
         run_state = shared_page_state.SharedPageState(
             DummyTest(), self.options, page_set.PageSet())
         fake_network_controller = FakeNetworkController()
         run_state._PrepareWpr(fake_network_controller, f.name, None)
         self.assertEquals(fake_network_controller.wpr_mode,
                           expected_wpr_mode)
         self.assertEquals(fake_network_controller.archive_path, f.name)
예제 #19
0
    def testRecordAndReplay(self):
        test_archive = '/tmp/google.wpr'
        google_url = 'http://www.google.com/'
        foo_url = 'http://www.foo.com/'
        archive_info_template = ("""
{
"archives": {
  "%s": ["%s"]
}
}
""")
        try:
            ps = page_set.PageSet()
            measurement = PageTestForReplay()

            # First record an archive with only www.google.com.
            self._options.browser_options.wpr_mode = wpr_modes.WPR_RECORD

            # pylint: disable=protected-access
            ps._wpr_archive_info = archive_info.WprArchiveInfo(
                '', '', ps.bucket,
                json.loads(archive_info_template % (test_archive, google_url)))
            ps.pages = [page_module.Page(google_url, ps)]
            all_results = self.RunMeasurement(measurement,
                                              ps,
                                              options=self._options)
            self.assertEquals(0, len(all_results.failures))

            # Now replay it and verify that google.com is found but foo.com is not.
            self._options.browser_options.wpr_mode = wpr_modes.WPR_REPLAY

            # pylint: disable=protected-access
            ps._wpr_archive_info = archive_info.WprArchiveInfo(
                '', '', ps.bucket,
                json.loads(archive_info_template % (test_archive, foo_url)))
            ps.pages = [page_module.Page(foo_url, ps)]
            all_results = self.RunMeasurement(measurement,
                                              ps,
                                              options=self._options)
            self.assertEquals(1, len(all_results.failures))

            # pylint: disable=protected-access
            ps._wpr_archive_info = archive_info.WprArchiveInfo(
                '', '', ps.bucket,
                json.loads(archive_info_template % (test_archive, google_url)))
            ps.pages = [page_module.Page(google_url, ps)]
            all_results = self.RunMeasurement(measurement,
                                              ps,
                                              options=self._options)
            self.assertEquals(0, len(all_results.failures))

            self.assertTrue(os.path.isfile(test_archive))

        finally:
            if os.path.isfile(test_archive):
                os.remove(test_archive)
 def setUp(self):
   ps = page_set.PageSet()
   self.p1 = page.Page(
     'file://conformance/textures/tex-sub-image-2d.html', page_set=ps,
     name='WebglConformance.conformance_textures_tex_sub_image_2d')
   self.p2 = page.Page(
     'file://othersuite/textures/tex-sub-image-3d.html', page_set=ps,
     name='OtherSuite.textures_tex_sub_image_3d')
   self.p3 = page.Page(
     'file://othersuite/textures/tex-sub-image-3d.html', page_set=ps)
예제 #21
0
 def CreatePageSet(self, options):
     ps = page_set.PageSet(
         archive_data_file='../page_sets/data/scirra.json',
         make_javascript_deterministic=False,
         file_path=os.path.abspath(__file__))
     for url in ('http://www.scirra.com/labs/renderperf3/',
                 'http://www.scirra.com/demos/c2/renderperfgl/',
                 'http://www.scirra.com/demos/c2/renderperf2d/'):
         ps.AddPageWithDefaultRunNavigate(url)
     return ps
예제 #22
0
 def CreatePageSet(self, options):
     ps = page_set.PageSet(file_path=data_path,
                           user_agent_type='desktop',
                           serving_dirs=set(['']))
     ps.AddPage(WebGLContextLostFromGPUProcessExitPage(ps, ps.base_dir))
     ps.AddPage(
         WebGLContextLostFromLoseContextExtensionPage(ps, ps.base_dir))
     ps.AddPage(WebGLContextLostFromQuantityPage(ps, ps.base_dir))
     ps.AddPage(WebGLContextLostFromSelectElementPage(ps, ps.base_dir))
     return ps
예제 #23
0
    def disabled_testRecordAndReplay(self):
        # This test is disabled because it runs against live sites, and needs to be
        # fixed. crbug.com/179038
        test_archive = '/tmp/google.wpr'
        google_url = 'http://www.google.com/'
        foo_url = 'http://www.foo.com/'
        archive_info_template = ("""
{
"archives": {
  "%s": ["%s"]
}
}
""")
        try:
            ps = page_set.PageSet()
            measurement = MeasurementForReplay()

            # First record an archive with only www.google.com.
            self._options.browser_options.wpr_mode = wpr_modes.WPR_RECORD

            ps.wpr_archive_info = page_set_archive_info.PageSetArchiveInfo(
                '', '',
                json.loads(archive_info_template % (test_archive, google_url)))
            ps.pages = [page_module.Page(google_url, ps)]
            all_results = self.RunMeasurement(measurement,
                                              ps,
                                              options=self._options)
            self.assertEquals(0, len(all_results.failures))

            # Now replay it and verify that google.com is found but foo.com is not.
            self._options.browser_options.wpr_mode = wpr_modes.WPR_REPLAY

            ps.wpr_archive_info = page_set_archive_info.PageSetArchiveInfo(
                '', '',
                json.loads(archive_info_template % (test_archive, foo_url)))
            ps.pages = [page_module.Page(foo_url, ps)]
            all_results = self.RunMeasurement(measurement,
                                              ps,
                                              options=self._options)
            self.assertEquals(1, len(all_results.failures))

            ps.wpr_archive_info = page_set_archive_info.PageSetArchiveInfo(
                '', '',
                json.loads(archive_info_template % (test_archive, google_url)))
            ps.pages = [page_module.Page(google_url, ps)]
            all_results = self.RunMeasurement(measurement,
                                              ps,
                                              options=self._options)
            self.assertEquals(0, len(all_results.failures))

            self.assertTrue(os.path.isfile(test_archive))

        finally:
            if os.path.isfile(test_archive):
                os.remove(test_archive)
    def testMaxFailuresOptionIsRespected(self):
        class TestPage(page_module.Page):
            def __init__(self, *args, **kwargs):
                super(TestPage, self).__init__(*args, **kwargs)
                self.was_run = False

            def RunNavigateSteps(self, action_runner):
                self.was_run = True
                raise Exception('Test exception')

        class Test(page_test.PageTest):
            def ValidatePage(self, *args):
                pass

        ps = page_set.PageSet()
        expectations = test_expectations.TestExpectations()
        page1 = TestPage('file://blank.html',
                         ps,
                         base_dir=util.GetUnittestDataDir())
        ps.pages.append(page1)
        page2 = TestPage('file://blank.html',
                         ps,
                         base_dir=util.GetUnittestDataDir())
        ps.pages.append(page2)
        page3 = TestPage('file://blank.html',
                         ps,
                         base_dir=util.GetUnittestDataDir())
        ps.pages.append(page3)
        page4 = TestPage('file://blank.html',
                         ps,
                         base_dir=util.GetUnittestDataDir())
        ps.pages.append(page4)
        page5 = TestPage('file://blank.html',
                         ps,
                         base_dir=util.GetUnittestDataDir())
        ps.pages.append(page5)

        options = options_for_unittests.GetCopy()
        options.output_format = 'none'
        options.suppress_gtest_report = True
        SetUpPageRunnerArguments(options)
        results = results_options.CreateResults(EmptyMetadataForTest(),
                                                options)
        page_runner.Run(Test(max_failures=2), ps, expectations, options,
                        results)
        self.assertEquals(0, len(GetSuccessfulPageRuns(results)))
        # Runs up to max_failures+1 failing tests before stopping, since
        # every tests after max_failures failures have been encountered
        # may all be passing.
        self.assertEquals(3, len(results.failures))
        self.assertTrue(page1.was_run)
        self.assertTrue(page2.was_run)
        self.assertTrue(page3.was_run)
        self.assertFalse(page4.was_run)
        self.assertFalse(page5.was_run)
예제 #25
0
 def CreatePageSet(self, options):
     """Makes a PageSet for Dromaeo benchmarks."""
     # Subclasses are expected to define a class member called query_param.
     if not hasattr(self, 'query_param'):
         raise NotImplementedError('query_param not in Dromaeo benchmark.')
     url = 'file://index.html?%s&automated' % self.query_param
     dromaeo_dir = os.path.join(util.GetChromiumSrcDir(), 'chrome', 'test',
                                'data', 'dromaeo')
     ps = page_set.PageSet(file_path=dromaeo_dir)
     ps.AddPageWithDefaultRunNavigate(url)
     return ps
    def testDiscardFirstResult(self):
        ps = page_set.PageSet()
        expectations = test_expectations.TestExpectations()
        ps.pages.append(
            page_module.Page('file://blank.html',
                             ps,
                             base_dir=util.GetUnittestDataDir()))
        ps.pages.append(
            page_module.Page('file://blank.html',
                             ps,
                             base_dir=util.GetUnittestDataDir()))

        class Measurement(page_measurement.PageMeasurement):
            @property
            def discard_first_result(self):
                return True

            def MeasurePage(self, *args):
                pass

        options = options_for_unittests.GetCopy()
        options.output_format = 'none'
        options.reset_results = None
        options.upload_results = None
        options.results_label = None

        options.page_repeat = 1
        options.pageset_repeat = 1
        SetUpPageRunnerArguments(options)
        results = page_runner.Run(Measurement(), ps, expectations, options)
        self.assertEquals(0, len(results.successes))
        self.assertEquals(0, len(results.failures))

        options.page_repeat = 1
        options.pageset_repeat = 2
        SetUpPageRunnerArguments(options)
        results = page_runner.Run(Measurement(), ps, expectations, options)
        self.assertEquals(2, len(results.successes))
        self.assertEquals(0, len(results.failures))

        options.page_repeat = 2
        options.pageset_repeat = 1
        SetUpPageRunnerArguments(options)
        results = page_runner.Run(Measurement(), ps, expectations, options)
        self.assertEquals(2, len(results.successes))
        self.assertEquals(0, len(results.failures))

        options.output_format = 'html'
        options.page_repeat = 1
        options.pageset_repeat = 1
        SetUpPageRunnerArguments(options)
        results = page_runner.Run(Measurement(), ps, expectations, options)
        self.assertEquals(0, len(results.successes))
        self.assertEquals(0, len(results.failures))
예제 #27
0
 def CreatePageSet(self, options):
     ps = page_set.PageSet(
         archive_data_file='../page_sets/data/sunspider.json',
         file_path=os.path.abspath(__file__),
         bucket=page_set.PARTNER_BUCKET)
     ps.AddUserStory(
         page_module.Page(_URL,
                          ps,
                          ps.base_dir,
                          make_javascript_deterministic=False))
     return ps
예제 #28
0
 def CreatePageSet(self, options):
     ps = page_set.PageSet(base_dir=data_path, serving_dirs=set(['']))
     ps.AddUserStory(GPUProcessCrashesExactlyOnce(ps, ps.base_dir))
     ps.AddUserStory(WebGLContextLostFromGPUProcessExitPage(
         ps, ps.base_dir))
     ps.AddUserStory(
         WebGLContextLostFromLoseContextExtensionPage(ps, ps.base_dir))
     ps.AddUserStory(WebGLContextLostFromQuantityPage(ps, ps.base_dir))
     ps.AddUserStory(WebGLContextLostFromSelectElementPage(ps, ps.base_dir))
     ps.AddUserStory(WebGLContextLostInHiddenTabPage(ps, ps.base_dir))
     return ps
예제 #29
0
 def CreatePageSet(self, options):
     ps = page_set.PageSet(
         base_dir=os.path.dirname(os.path.abspath(__file__)),
         archive_data_file='../page_sets/data/speedometer.json',
         bucket=page_set.PUBLIC_BUCKET)
     ps.AddUserStory(
         page_module.Page('http://browserbench.org/Speedometer/',
                          ps,
                          ps.base_dir,
                          make_javascript_deterministic=False))
     return ps
    def CreatePageSet(self, options):
        features = ['WebGL', 'Canvas']

        ps = page_set.PageSet(
            description='Tests GPU acceleration is reported as active',
            user_agent_type='desktop',
            file_path='')

        for feature in features:
            ps.AddPage(ChromeGpuPage(page_set=ps, feature=feature))
        return ps