11e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved. 21e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 31e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)# found in the LICENSE file. 41e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)import os 646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)import tempfile 746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 81e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)from measurements import session_restore 946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)from measurements import session_restore_with_url 10f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)import page_sets 1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)from profile_creators import small_profile_creator 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdochfrom telemetry import benchmark 1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)from telemetry.page import profile_generator 1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass _SessionRestoreTest(benchmark.Benchmark): 1746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) @classmethod 1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) def ProcessCommandLineArgs(cls, parser, args): 2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) super(_SessionRestoreTest, cls).ProcessCommandLineArgs(parser, args) 2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) profile_type = 'small_profile' 2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) if not args.browser_options.profile_dir: 2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) profile_dir = os.path.join(tempfile.gettempdir(), profile_type) 2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) if not os.path.exists(profile_dir): 2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) new_args = args.Copy() 2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) new_args.pageset_repeat = 1 2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) new_args.output_dir = profile_dir 2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) profile_generator.GenerateProfiles( 2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) small_profile_creator.SmallProfileCreator, profile_type, new_args) 3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) args.browser_options.profile_dir = os.path.join(profile_dir, profile_type) 311e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 321e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# crbug.com/325479, crbug.com/381990 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Disabled('android', 'linux', 'reference') 3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class SessionRestoreColdTypical25(_SessionRestoreTest): 361e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) tag = 'cold' 371e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) test = session_restore.SessionRestore 38f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) page_set = page_sets.Typical25PageSet 391e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) options = {'cold': True, 4023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 'pageset_repeat': 5} 411e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 421e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# crbug.com/325479, crbug.com/381990 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Disabled('android', 'linux', 'reference') 4546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class SessionRestoreWarmTypical25(_SessionRestoreTest): 461e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) tag = 'warm' 471e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) test = session_restore.SessionRestore 48f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) page_set = page_sets.Typical25PageSet 491e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) options = {'warm': True, 5023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 'pageset_repeat': 20} 5146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 5246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# crbug.com/325479, crbug.com/381990, crbug.com/405386 541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Disabled('android', 'linux', 'reference', 'snowleopard') 5546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class SessionRestoreWithUrlCold(_SessionRestoreTest): 5646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) """Measure Chrome cold session restore with startup URLs.""" 5746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) tag = 'cold' 5846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) test = session_restore_with_url.SessionRestoreWithUrl 59f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) page_set = page_sets.StartupPagesPageSet 6046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) options = {'cold': True, 6146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 'pageset_repeat': 5} 6246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 6346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# crbug.com/325479, crbug.com/381990, crbug.com/405386 651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Disabled('android', 'linux', 'reference', 'snowleopard') 6646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class SessionRestoreWithUrlWarm(_SessionRestoreTest): 6746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) """Measure Chrome warm session restore with startup URLs.""" 6846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) tag = 'warm' 6946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) test = session_restore_with_url.SessionRestoreWithUrl 70f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) page_set = page_sets.StartupPagesPageSet 7146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) options = {'warm': True, 7246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 'pageset_repeat': 10} 73