Home | History | Annotate | Download | only in benchmarks
      1 # Copyright 2013 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 import os
      6 import tempfile
      7 
      8 from measurements import session_restore
      9 from measurements import session_restore_with_url
     10 import page_sets
     11 from profile_creators import small_profile_creator
     12 from telemetry import benchmark
     13 from telemetry.page import profile_generator
     14 
     15 
     16 class _SessionRestoreTest(benchmark.Benchmark):
     17 
     18   @classmethod
     19   def ProcessCommandLineArgs(cls, parser, args):
     20     super(_SessionRestoreTest, cls).ProcessCommandLineArgs(parser, args)
     21     profile_type = 'small_profile'
     22     if not args.browser_options.profile_dir:
     23       profile_dir = os.path.join(tempfile.gettempdir(), profile_type)
     24       if not os.path.exists(profile_dir):
     25         new_args = args.Copy()
     26         new_args.pageset_repeat = 1
     27         new_args.output_dir = profile_dir
     28         profile_generator.GenerateProfiles(
     29             small_profile_creator.SmallProfileCreator, profile_type, new_args)
     30       args.browser_options.profile_dir = os.path.join(profile_dir, profile_type)
     31 
     32 
     33 # crbug.com/325479, crbug.com/381990
     34 @benchmark.Disabled('android', 'linux', 'reference')
     35 class SessionRestoreColdTypical25(_SessionRestoreTest):
     36   tag = 'cold'
     37   test = session_restore.SessionRestore
     38   page_set = page_sets.Typical25PageSet
     39   options = {'cold': True,
     40              'pageset_repeat': 5}
     41 
     42 
     43 # crbug.com/325479, crbug.com/381990
     44 @benchmark.Disabled('android', 'linux', 'reference')
     45 class SessionRestoreWarmTypical25(_SessionRestoreTest):
     46   tag = 'warm'
     47   test = session_restore.SessionRestore
     48   page_set = page_sets.Typical25PageSet
     49   options = {'warm': True,
     50              'pageset_repeat': 20}
     51 
     52 
     53 # crbug.com/325479, crbug.com/381990, crbug.com/405386
     54 @benchmark.Disabled('android', 'linux', 'reference', 'snowleopard')
     55 class SessionRestoreWithUrlCold(_SessionRestoreTest):
     56   """Measure Chrome cold session restore with startup URLs."""
     57   tag = 'cold'
     58   test = session_restore_with_url.SessionRestoreWithUrl
     59   page_set = page_sets.StartupPagesPageSet
     60   options = {'cold': True,
     61              'pageset_repeat': 5}
     62 
     63 
     64 # crbug.com/325479, crbug.com/381990, crbug.com/405386
     65 @benchmark.Disabled('android', 'linux', 'reference', 'snowleopard')
     66 class SessionRestoreWithUrlWarm(_SessionRestoreTest):
     67   """Measure Chrome warm session restore with startup URLs."""
     68   tag = 'warm'
     69   test = session_restore_with_url.SessionRestoreWithUrl
     70   page_set = page_sets.StartupPagesPageSet
     71   options = {'warm': True,
     72              'pageset_repeat': 10}
     73