1f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
2f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou# Use of this source code is governed by a BSD-style license that can be
3f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou# found in the LICENSE file.
4f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou
5f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignoufrom autotest_lib.server import autotest
6f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignoufrom autotest_lib.server import hosts
7f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignoufrom autotest_lib.server import test
8f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou
9f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou
10f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignouclass hardware_StorageQualSuspendStress(test.test):
11f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou    """ Run Fio while suspending aggressively."""
12f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou
13f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou    version = 1
14f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou
15f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou    def run_once(self, client_ip, duration):
16f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou        client = hosts.create_host(client_ip)
17f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou        client_at = autotest.Autotest(client)
18f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou        control = """job.parallel(
19f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou            [lambda: job.run_test('power_SuspendStress', tag='disk',
2066b60604a10dc9ce9b4791e92152b93522306482Gwendal Grignou                duration=%d, init_delay=10, min_suspend=7, min_resume=30,
213f8ee36e85e823634c8ddfb4710a2270c3548075Gwendal Grignou                check_connection=True)],
2274b3a6bf37921a368c6a089caf1be8efda185b9eGwendal Grignou            [lambda: job.run_test('hardware_StorageFio', test_length=%d,
23ae36712f888f6ba538eb4942e38ef2b8aaf6e6b4Gwendal Grignou                disable_sysinfo=True, requirements=[('write_stress', [])],
2474b3a6bf37921a368c6a089caf1be8efda185b9eGwendal Grignou                tag='qual_suspend')])""" % (duration, duration)
25f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou        client_at.run(control, '.', None)
26f597b125ab4c29da5ad57d937eb247ffe2f7e757Gwendal Grignou
27