
# 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

DOC = "hardware_StorageStress_storage_qual_mini_soak_soak_0"

keyval = dict()
keyval['storage_qual_version'] = 1
keyval['bug_id'] = bug_id
keyval['part_id'] = part_id
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)
