42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
# 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 logging, os
|
|
|
|
from autotest_lib.client.bin import test, utils
|
|
from autotest_lib.client.common_lib import error
|
|
|
|
class hardware_Memtester(test.test):
|
|
"""
|
|
This test uses memtester to find memory subsystem faults. Amount of memory
|
|
to test is all of the free memory plus buffer and cache region with 30 MB
|
|
reserved for OS use.
|
|
"""
|
|
|
|
version = 1
|
|
|
|
def run_once(self, size=0, loop=10):
|
|
"""
|
|
Executes the test and logs the output.
|
|
|
|
@param size: size to test in KB. 0 means all usable
|
|
@param loop: number of iteration to test memory
|
|
"""
|
|
if size == 0:
|
|
size = utils.usable_memtotal()
|
|
elif size > utils.memtotal():
|
|
raise error.TestFail('Specified size is more than total memory.')
|
|
|
|
if size <= 0:
|
|
raise error.TestFail('Size must be more than zero.')
|
|
|
|
|
|
logging.info('Memory test size: %dK', size)
|
|
|
|
cmd = 'memtester %dK %d' % (size, loop)
|
|
logging.info('cmd: %s', cmd)
|
|
|
|
with open(os.path.join(self.resultsdir, 'memtester_stdout'), 'w') as f:
|
|
utils.run(cmd, stdout_tee=f)
|