
# Copyright (c) 2018 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 = "Chrome OS Team"
NAME = "hardware_StorageQualBase_trim_after"
ATTRIBUTES = "suite:storage_qual_quick"
PURPOSE = "hardware_StorageQualBase_trim_after"
TIME = "long"
TEST_CATEGORY = "Stress"
TEST_CLASS = "Hardware"
TEST_TYPE = "server"
REQUIRE_SSP = False
PRIORITY = 70
DEPENDENCIES = "trim"
JOB_RETRIES = 0

DOC = "hardware_StorageQualBase_trim_after"

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

parallel_simple(run, machines)
