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

DOC = "hardware_StorageQualBase_storage_qual_cq_2_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', cq=True)

parallel_simple(run, machines)
