
# 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_StorageQualBase_storage_qual_mini_soak_after"
ATTRIBUTES = "suite:storage_qual_mini_soak"
PURPOSE = "hardware_StorageQualBase_storage_qual_mini_soak_after"
TIME = "long"
TEST_CATEGORY = "Stress"
TEST_CLASS = "Hardware"
TEST_TYPE = "server"
REQUIRE_SSP = True
PRIORITY = 70
DEPENDENCIES = "storage_qual_mini_soak"
JOB_RETRIES = 0
FAST = False

DOC = "hardware_StorageQualBase_storage_qual_mini_soak_after"

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_StorageQualBase", host=hosts.create_host(machine),
            client_ip=machine, tag='after', client_tag='after', skip_crypto=True)

parallel_simple(run, machines)
