# Copyright 2021 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

AUTHOR = "puthik"
NAME = "power_Idle.default_20min"
PURPOSE = "Measure power usage when system is idle."
CRITERIA = "This test is a benchmark."
TIME = "LONG"
TEST_CATEGORY = "Benchmark"
TEST_CLASS = "power"
TEST_TYPE = "client"

DOC = """
This test records power related statistics while the system is idling.

This version tests only the default state of the DUT for 20 minutes to make
it easier for HW Eng to manually measure power with other hardware.
"""

args_dict = utils.args_to_dict(args)
pdash_note = args_dict.get('pdash_note', '')
job.run_test('power_Idle', pdash_note=pdash_note, tag=NAME.split('.')[1],
             default_only=True, force_discharge='optional', idle_secs=1200)
