40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
import time, os
|
|
from autotest_lib.client.bin import test, utils
|
|
from autotest_lib.client.common_lib import error
|
|
|
|
class cpu_hotplug(test.test):
|
|
version = 2
|
|
|
|
# http://developer.osdl.org/dev/hotplug/tests/lhcs_regression-1.6.tgz
|
|
def setup(self, tarball = 'lhcs_regression-1.6.tgz'):
|
|
tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
|
|
utils.extract_tarball_to_dir(tarball, self.srcdir)
|
|
|
|
|
|
def initialize(self):
|
|
# Check if the kernel supports cpu hotplug
|
|
if utils.running_config():
|
|
utils.check_for_kernel_feature('HOTPLUG_CPU')
|
|
|
|
# Check cpu nums, if equals 1, quit.
|
|
if utils.count_cpus() == 1:
|
|
e_msg = 'Single CPU online detected, test not supported.'
|
|
raise error.TestNAError(e_msg)
|
|
|
|
# Have a simple and quick check first, FIX me please.
|
|
utils.system('dmesg -c > /dev/null')
|
|
for cpu in utils.cpu_online_map():
|
|
if os.path.isfile('/sys/devices/system/cpu/cpu%s/online' % cpu):
|
|
utils.system('echo 0 > /sys/devices/system/cpu/cpu%s/online' % cpu, 1)
|
|
utils.system('dmesg -c')
|
|
time.sleep(3)
|
|
utils.system('echo 1 > /sys/devices/system/cpu/cpu%s/online' % cpu, 1)
|
|
utils.system('dmesg -c')
|
|
time.sleep(3)
|
|
|
|
|
|
def run_once(self):
|
|
# Begin this cpu hotplug test big guru.
|
|
os.chdir(self.srcdir)
|
|
utils.system('./runtests.sh')
|