# Copyright (c) 2014 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. import time from autotest_lib.server import autotest from autotest_lib.server import hosts from autotest_lib.server import test class hardware_StorageQualBase(test.test): """Tests run at the beginning over the disk qual test. This code runs simple tests to ensure the device meet basic critera. """ version = 1 CLIENT_FUNCTIONAL_TESTS = [ ('hardware_DiskSize', {'constraints': ['gb_main_disk_size >= 8']}), ('hardware_SsdDetection', { 'constraints': ['mb_ssd_device_size >= 8000']}), ('hardware_StorageFio', {'constraints': [ '_seq_read_read_bw >= 50 * 1024', '_seq_write_write_bw >= 15 * 1024', '_16k_write_write_iops >= 10'], 'requirements': [ ('seq_read', []), ('seq_write', []), ('4k_read', []), ('4k_write', []), ('16k_read', []), ('16k_write', [])], }) ] CRYPTO_RUNTIME = 5 * 60 # seconds. CRYPTO_TESTS = [ 'surfing', 'boot', 'login', 'seq_read', 'seq_write', '16k_read', '16k_write', '8k_read', '8k_write', '4k_read', '4k_write', ] def run_once(self, client_ip, client_tag='', crypto_runtime=CRYPTO_RUNTIME, cq=False): # in a cq run, do not execute the test, just output # the order that the test would have run in if cq: self.write_test_keyval( {'storage_qual_cq': ('%f hardware_StorageQualBase_%s' % (time.time(), client_tag))}) return client = hosts.create_host(client_ip) client_at = autotest.Autotest(client) for test_name, argv in self.CLIENT_FUNCTIONAL_TESTS: client_at.run_test(test_name, disable_sysinfo=True, tag=client_tag, **argv) # Test real life performance for script in self.CRYPTO_TESTS: client_at.run_test('platform_CryptohomeFio', disable_sysinfo=True, from_internal_disk_only=True, script=script, tag='_'.join([client_tag, script]), runtime=crypto_runtime, disk_configs=['crypto', 'plain'])