55 lines
2.3 KiB
55 lines
2.3 KiB
# Copyright (c) 2012 Collabora Ltd. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
NAME = "hardware_MultiReaderPowerConsumption"
|
|
AUTHOR = "Vivia Nikolaidou <vivia.nikolaidou@collabora.co.uk>"
|
|
PURPOSE = """Test card reader CPU power consumption to be within acceptable
|
|
range while performing random r/w"""
|
|
CRITERIA = """Fails if power consumption readings during heavy-duty random r/w
|
|
fall outside predefined ranges"""
|
|
TIME = "SHORT"
|
|
TEST_CATEGORY = "Functional"
|
|
TEST_CLASS = "hardware"
|
|
TEST_TYPE = "client"
|
|
|
|
DOC = """
|
|
This test runs a heavy-duty random read/write test, which is defined as
|
|
running a `dd if=/dev/urandom` in parallel with a `tail -f`. The test is
|
|
run three times: once on a ramdisk with the SD card mounted, once on the
|
|
SD card with the ramdisk unmounted, and once on the ramdisk with the SD
|
|
card unmounted. Power consumption is measured after each test and then
|
|
reported. Preconditions:
|
|
|
|
1) User must not be logged on to the GUI
|
|
2) An empty SD card must be inserted and formatted with a single mountable
|
|
partition
|
|
3) No other usb storage devices must be inserted.
|
|
|
|
@param ramdisk_size: size of the ramdisk (integer in MiB).
|
|
@param file_size: test file size (integer in MiB).
|
|
@param ramdisk_path: path to the ramdisk mount point.
|
|
@param fs_uuid: the UUID for the attached card. Use this parameter is
|
|
autodetection does not work as expected.
|
|
@param drain_limit: maximum ratio between the card reader energy consumption
|
|
and each of the two ramdisk read/write test energy consumption values.
|
|
1.00 means the card reader test may not consume more energy than either
|
|
ramdisk test, 0.9 means it may consume no more than 90% of the ramdisk
|
|
value, and so forth. default is 1.05.
|
|
"""
|
|
|
|
from autotest_lib.client.cros import storage as storage_mod
|
|
|
|
volume_filter, args_dict = storage_mod.args_to_storage_dict(args)
|
|
ramdisk_size = int(args_dict.get("ramdisk_size", 513)) # MiB
|
|
file_size = int(args_dict.get("file_size", 512)) # MiB
|
|
drain_limit = float(args_dict.get("drain_limit", 1.05))
|
|
if not volume_filter:
|
|
volume_filter = {"bus": "usb"}
|
|
|
|
job.run_test("hardware_MultiReaderPowerConsumption",
|
|
ramdisk_size=ramdisk_size,
|
|
file_size=file_size,
|
|
drain_limit=drain_limit,
|
|
volume_filter=volume_filter)
|