# Copyright 2024 The ChromiumOS Authors.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

NAME = 'storage_testing_v3_removable'
METADATA = {
    'contacts': ['chromeos-storage@google.com'],
    'bug_component': 'b:974567',
    'criteria': 'Part of Storage Testing v3',
    'hw_agnostic': False
}
ATTRIBUTES = 'suite:storage-qual-removable'
TEST_TYPE = 'Server'
PRIORITY = 200
MAX_RESULT_SIZE_KB = 1024 * 1024
JOB_RETRIES = 0
REQUIRE_SSP = True
FAST = False

from autotest_lib.client.common_lib import utils

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

args_dict = utils.args_to_dict(args)

def run(machine):
    job.run_test('tast',
                host=hosts.create_host(machine),
                test_exprs=['storage.Removable'],
                ignore_test_failures=False,
                max_run_sec=6000,
		report_skipped=True,
                command_args=args)

parallel_simple(run, machines)