# Copyright 2015 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.

from autotest_lib.client.common_lib import utils

AUTHOR = 'garnold'
NAME = 'brillo_StorageWriteSpeedTest'
TIME = 'SHORT'
TEST_CATEGORY = 'Functional'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:brillo-bvt,suite:brillo-postsubmit'

DOC = """
Tests whether a Brillo device's storage can be written to faster than
a minimum speed.

Arg:
  block_size: The block size in bytes to use when writing to storage.
  num_blocks: The number of blocks to write.
  min_speed: The minimum write speed required in bytes per second.
"""

TEST_ARG_NAMES = ('block_size', 'num_blocks', 'min_speed')
args_dict = utils.args_to_dict(args)

def run(machine):
    test_args = {}
    for k,v in args_dict.items():
        if k in TEST_ARG_NAMES:
            test_args[k] = int(v)
    job.run_test('brillo_StorageWriteSpeedTest',
                 host=hosts.create_host(machine), **test_args)


parallel_simple(run, machines)
