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"""The Endure benchmarks measure memory performance over a period of time.
6
7In each Endure benchmark, one page action is performed repeatedly and memory
8usage is measured periodically. The specific page actions are defined in the
9page sets, and the statistics that are gathered are determined by the Endure
10measurement class.
11"""
12
13from telemetry import test
14
15from measurements import endure
16import page_sets
17
18
19class _EndureBenchmark(test.Test):
20  """Base class which sets options for endure benchmarks below."""
21  test = endure.Endure
22  # Default options for endure benchmarks. Could be overridden in subclasses.
23  options = {
24      # Depending on the page and the actions performed on the page,
25      # 1000 iterations should be between 30 and 60 minutes.
26      'page_repeat': 1000,
27      # One sample per 10 iterations -> 200 points per run.
28      'perf_stats_interval': 10
29  }
30
31
32class EndureCalendarForwardBackward(_EndureBenchmark):
33  page_set = page_sets.CalendarForwardBackwardPageSet
34
35
36class EndureBrowserControl(_EndureBenchmark):
37  page_set = page_sets.BrowserControlPageSet
38
39
40class EndureBrowserControlClick(_EndureBenchmark):
41  page_set = page_sets.BrowserControlClickPageSet
42
43
44class EndureGmailAltThreadlistConversation(_EndureBenchmark):
45  page_set = page_sets.GmailAltThreadlistConversationPageSet
46
47
48class EndureGmailAltTwoLabels(_EndureBenchmark):
49  page_set = page_sets.GmailAltTwoLabelsPageSet
50
51
52class EndureGmailExpandCollapseConversation(_EndureBenchmark):
53  page_set = page_sets.GmailExpandCollapseConversationPageSet
54
55
56class EndureIndexedDBOffline(_EndureBenchmark):
57  page_set = page_sets.IndexeddbOfflinePageSet
58
59
60class EndurePlusAltPostsPhotos(_EndureBenchmark):
61  page_set = page_sets.PlusAltPostsPhotosPageSet
62
63