1424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved.
2424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
3424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)# found in the LICENSE file.
4424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
5a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)"""The Endure benchmarks measure memory performance over a period of time.
6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)In each Endure benchmark, one page action is performed repeatedly and memory
8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)usage is measured periodically. The specific page actions are defined in the
9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)page sets, and the statistics that are gathered are determined by the Endure
10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)measurement class.
11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)"""
12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
13424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)from measurements import endure
14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)import page_sets
15116680a4aac90f2aa7413d9095a592090648e557Ben Murdochfrom telemetry import benchmark
16424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
17424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass _EndureBenchmark(benchmark.Benchmark):
19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  """Base class which sets options for endure benchmarks below."""
20424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  test = endure.Endure
214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  # Default options for endure benchmarks. Could be overridden in subclasses.
22424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  options = {
23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      # Depending on the page and the actions performed on the page,
24f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      # 1000 iterations should be between 30 and 60 minutes.
25f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      'page_repeat': 1000,
26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      # One sample per 10 iterations -> 200 points per run.
27effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      'perf_stats_interval': 10
28424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  }
29424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch@benchmark.Disabled
324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class EndureCalendarForwardBackward(_EndureBenchmark):
33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.CalendarForwardBackwardPageSet
344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
35424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch@benchmark.Disabled
374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class EndureBrowserControl(_EndureBenchmark):
38f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.BrowserControlPageSet
394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch@benchmark.Disabled
424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class EndureBrowserControlClick(_EndureBenchmark):
43f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.BrowserControlClickPageSet
444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch@benchmark.Disabled
474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class EndureGmailAltThreadlistConversation(_EndureBenchmark):
48f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.GmailAltThreadlistConversationPageSet
49424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
50424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch@benchmark.Disabled
524e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class EndureGmailAltTwoLabels(_EndureBenchmark):
53f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.GmailAltTwoLabelsPageSet
54424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
55424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
56116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch@benchmark.Disabled
574e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class EndureGmailExpandCollapseConversation(_EndureBenchmark):
58f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.GmailExpandCollapseConversationPageSet
59424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
60424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
61116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch@benchmark.Disabled
624e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class EndureIndexedDBOffline(_EndureBenchmark):
63f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.IndexeddbOfflinePageSet
644e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
654e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
66116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch@benchmark.Disabled
674e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class EndurePlusAltPostsPhotos(_EndureBenchmark):
68f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.PlusAltPostsPhotosPageSet
69424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
70