AUTHOR = "Chromium OS Team"
NAME = "platform_CryptohomeStress.surfing"
PURPOSE = "Stress test the encrypted file system in Chromium OS."
TIME = "LONG"
TEST_CATEGORY = "Security"
TEST_CLASS = "security"
TEST_TYPE = "client"
ATTRIBUTES = "suite:bvt-perbuild"

DOC = """
This is a stress test of the file system in Chromium OS. While performing the
test, we will cycle through power states, and interrupt disk activity.
"""

# The time in seconds to run this stress for, passed to the individual tests.
RUNTIME = 600

def run_sleeper():
    job.run_test('power_SuspendStress', duration=RUNTIME, min_suspend=20)

def run_fio():
    job.run_test('platform_CryptohomeFio', runtime=RUNTIME,
                 disk_configs=['crypto'], script='surfing')

def run_cryptohomestress():
    job.run_test('platform_CryptohomeStress', runtime=RUNTIME)

job.parallel([run_sleeper], [run_fio], [run_cryptohomestress])
