| Index: client/site_tests/storage_SsdDetection/storage_SsdDetection.py
|
| diff --git a/client/site_tests/storage_SsdDetection/storage_SsdDetection.py b/client/site_tests/storage_SsdDetection/storage_SsdDetection.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..dd00c2400b6665ee8a53193fb12f2eeb9c223846
|
| --- /dev/null
|
| +++ b/client/site_tests/storage_SsdDetection/storage_SsdDetection.py
|
| @@ -0,0 +1,49 @@
|
| +# 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.
|
| +
|
| +import os
|
| +import re
|
| +
|
| +from autotest_lib.client.bin import test, utils
|
| +from autotest_lib.client.common_lib import error
|
| +
|
| +class storage_SsdDetection(test.test):
|
| + version = 1
|
| +
|
| + def setup(self):
|
| + self.job.setup_dep(['hdparm'])
|
| + # create a empty srcdir to prevent the error that checks .version file
|
| + utils.system('mkdir %s' % self.srcdir)
|
| +
|
| +
|
| + def run_once(self):
|
| + # TODO(ericli): need to find a general solution to install dep packages
|
| + # when tests are pre-compiled, so setup() is not called from client any
|
| + # more.
|
| + dep = 'hdparm'
|
| + dep_dir = os.path.join(self.autodir, 'deps', dep)
|
| + self.job.install_pkg(dep, 'dep', dep_dir)
|
| +
|
| + cmdline = file('/proc/cmdline').read()
|
| + match = re.search(r'root=([^ ]+)', cmdline)
|
| + if not match:
|
| + raise error.TestError('Unable to find the root partition')
|
| + device = match.group(1)[:-1]
|
| +
|
| + path = self.autodir + '/deps/hdparm/sbin/'
|
| + hdparm = utils.run(path + 'hdparm -I %s' % device)
|
| +
|
| + for line in hdparm.stdout:
|
| + match = re.search(r'Nominal Media Rotation Rate: (.+)',
|
| + line.strip())
|
| + if match and match.group(1):
|
| + if match.group(1) == 'Solid State Device':
|
| + break;
|
| + else:
|
| + raise error.TestFail('The main disk is not a SSD, '
|
| + 'Rotation Rate: %s' % match.group(1))
|
| + else:
|
| + raise error.TestNAError(
|
| + 'Rotation Rate not reported from the device, '
|
| + 'unable to ensure it is a SSD')
|
|
|