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

# This control file was auto-generated by generate_storage_qual_control_files.py
# Do not edit this file!

from autotest_lib.client.common_lib import utils

AUTHOR = "chromeos-storage"
NAME = "hardware_StorageStress_storage_qual_mini_soak_soak_0"
ATTRIBUTES = "suite:storage_qual_mini_soak"
PURPOSE = "hardware_StorageStress_storage_qual_mini_soak_soak_0"
TIME = "lengthy"
TEST_CATEGORY = "Stress"
TEST_CLASS = "Hardware"
TEST_TYPE = "server"
REQUIRE_SSP = True
PRIORITY = 90
DEPENDENCIES = "storage_qual_mini_soak"
JOB_RETRIES = 0
FAST = False

DOC = "hardware_StorageStress_storage_qual_mini_soak_soak_0"

keyval = dict()
keyval['storage_qual_version'] = 1
try:
    keyval['bug_id'] = bug_id
    keyval['part_id'] = part_id
except NameError:
    # bug_id and/or part_id variables not defined
    pass
utils.write_keyval(job.resultdir, keyval)

def run(machine):
    job.run_test("hardware_StorageStress", host=hosts.create_host(machine),
            client_ip=machine, tag='soak', power_command='nothing', storage_test_command='full_write', duration=7200)

parallel_simple(run, machines)
