| # 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. |
| |
| 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_mean >= 50 * 1024', |
| '_seq_write_write_bw_mean >= 15 * 1024', |
| '_16k_write_write_iops >= 10'], |
| 'requirements': [ |
| ('seq_read', []), |
| ('seq_write', []), |
| ('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): |
| 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, tag=client_tag, **argv) |
| |
| # Test real life performance |
| for script in self.CRYPTO_TESTS: |
| client_at.run_test('platform_CryptohomeFio', |
| from_internal_disk_only=True, |
| script=script, |
| tag='_'.join([client_tag, script]), |
| runtime=crypto_runtime, |
| disk_configs=['crypto', 'plain']) |