• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2012 The Chromium OS 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
5AUTHOR = "Chrome OS Team"
6NAME = "power_LoadTest.single_page"
7PURPOSE = "Measure power draw when system is under load."
8CRITERIA = "This test is a benchmark."
9TIME = "MEDIUM"
10TEST_CATEGORY = "Benchmark"
11TEST_CLASS = "power"
12TEST_TYPE = "client"
13
14DOC = """
15This test measures the power of a single webpage including stats such as
16cpu usage.
17
18@args: the website url to run the test with
19
20The following manual steps need to be performed on the device under test
21before this test can be run:
22  - make sure that Ethernet cable is disconnected and WiFi is connected
23  - disconnect power cable
24
25You are now ready to run the test.
26"""
27
28# TODO (bleung): Find a way to do automatic Facebook login for test account.
29# TODO (tbroch): Find way to not replicate all these parameters that are common
30# between this control file and the original
31loop_time = 300
32loop_count = 1
33
34# Task format:
35# This sets the tasks variable in the extension directly via javascript.
36#
37# Args:
38# type: [window, cycle] Window will open a window with tabs for the duration of
39# the window. Cycle will cycle through the urls for the duration of the window
40# every delay ms.
41# name: name of the window
42# start: start time (ms)
43# duration: duration of task (ms)
44# delay: time for each url for the cycle type (ms)
45# timeout: time before loading a url times out for the cycle type (ms)
46# focus: whether the window should be in the foreground
47# tabs: list of urls for the window type
48# urls: list of urls to cycle through for the cycle type
49
50# The duration and delay are scaled by 1/12 due to the loop time being 300
51# instead of 3600 seconds. This is why duration is minutes(60) instead of
52# minutes(5) and delay is minutes(12) instead of minutes(1).
53tasks='[{' + \
54'    type: \'cycle\',' + \
55'    name: \'web\',' + \
56'    start: seconds(1),' + \
57'    duration: minutes(60),' + \
58'    delay: minutes(12),' + \
59'    timeout: seconds(10),' + \
60'    focus: true,' + \
61'    urls: [' + \
62'\'' + \
63args[0] + \
64'\'' + \
65']}]'
66
67args_dict = utils.args_to_dict(args)
68pdash_note = args_dict.get('pdash_note', '')
69job.run_test('power_LoadTest', loop_time=loop_time, loop_count=loop_count,
70             test_low_batt_p=6, tasks=tasks, tag=NAME.split('.')[1],
71             pdash_note=pdash_note)
72