
# 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_external_before"
ATTRIBUTES = "suite:storage_qual_external"
PURPOSE = "hardware_StorageQualBase_storage_qual_external_before"
TIME = "lengthy"
TEST_CATEGORY = "Stress"
TEST_CLASS = "Hardware"
TEST_TYPE = "server"
REQUIRE_SSP = False
PRIORITY = 100
DEPENDENCIES = "storage_qual_external"
JOB_RETRIES = 0

DOC = "hardware_StorageQualBase_storage_qual_external_before"

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, tag='before', client_tag='before', nonroot=True)

parallel_simple(run, machines)
