# Copyright (c) 2010 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.

AUTHOR = "Chrome OS Team"
NAME = "Kernel Filesystem Smoke Test"
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "suite"
TEST_TYPE = "server"

DOC = """
This test suite runs a quick automated smoke test of the
the filesystem and block layer.
"""

from autotest_lib.client.cros import cros_logging
from autotest_lib.server import site_host_attributes

# TODO: Add some tests
TESTS = [
    ('hardware_StorageFio', {'quicktest':'True'}),	# raw block device testing
]


def run_tests(machine):
  client = hosts.create_host(machine)
  client_attributes = site_host_attributes.HostAttributes(machine)

  client_at = autotest.Autotest(client)
  for test, argv in TESTS:
    client_at.run_test(test, **argv)


job.parallel_on_machines(run_tests, machines)
