| Index: client/bin/kernel_unittest.py
|
| diff --git a/client/bin/kernel_unittest.py b/client/bin/kernel_unittest.py
|
| index 88d822de001542bca0f195c1647b300da0164165..fe40e6a1ab7cb452cefc3b4e05f8e68b99a97dc8 100755
|
| --- a/client/bin/kernel_unittest.py
|
| +++ b/client/bin/kernel_unittest.py
|
| @@ -6,6 +6,94 @@ from autotest_lib.client.common_lib.test_utils import mock
|
| from autotest_lib.client.bin import kernel, job, utils, kernelexpand
|
| from autotest_lib.client.bin import kernel_config, boottool, os_dep
|
|
|
| +
|
| +class TestAddKernelToBootLoader(unittest.TestCase):
|
| +
|
| + def add_to_bootloader(self, base_args, args, bootloader_args,
|
| + bootloader_root, tag='image', image='image',
|
| + initrd='initrd'):
|
| + god = mock.mock_god()
|
| + bootloader = god.create_mock_class(boottool.boottool, "boottool")
|
| +
|
| + # record
|
| + bootloader.remove_kernel.expect_call(tag)
|
| + bootloader.add_kernel.expect_call(image, tag, initrd=initrd,
|
| + args=bootloader_args,
|
| + root=bootloader_root)
|
| +
|
| + # run and check
|
| + kernel._add_kernel_to_bootloader(bootloader, base_args, tag, args,
|
| + image, initrd)
|
| + god.check_playback()
|
| +
|
| +
|
| + def test_add_kernel_to_bootloader(self):
|
| + self.add_to_bootloader(base_args='baseargs', args='',
|
| + bootloader_args='baseargs', bootloader_root=None)
|
| + self.add_to_bootloader(base_args='arg1 root=/dev/oldroot arg2',
|
| + args='root=/dev/newroot arg3',
|
| + bootloader_args='arg1 arg2 arg3',
|
| + bootloader_root='/dev/newroot')
|
| +
|
| +
|
| +class TestBootableKernel(unittest.TestCase):
|
| +
|
| + def setUp(self):
|
| + self.god = mock.mock_god()
|
| + self.god.stub_function(time, "time")
|
| + self.god.stub_function(utils, "system")
|
| + self.god.stub_function(kernel, "_add_kernel_to_bootloader")
|
| + job_ = self.god.create_mock_class(job.job, "job")
|
| + self.kernel = kernel.BootableKernel(job_)
|
| + self.kernel.job.bootloader = self.god.create_mock_class(
|
| + boottool.boottool, "boottool")
|
| +
|
| +
|
| + def tearDown(self):
|
| + # note: time.time() can only be unstubbed via tearDown()
|
| + self.god.unstub_all()
|
| +
|
| +
|
| + def boot_kernel(self, ident_check):
|
| + notes = "applied_patches"
|
| + when = 1
|
| + args = ''
|
| + base_args = 'base_args'
|
| + tag = 'ident'
|
| + subdir = 'subdir'
|
| + self.kernel.image = 'image'
|
| + self.kernel.initrd = 'initrd'
|
| + self.kernel.installed_as = tag
|
| +
|
| + # record
|
| + args_ = args
|
| + if ident_check:
|
| + time.time.expect_call().and_return(when)
|
| + args_ += " IDENT=%d" % when
|
| + status = ["job.end_reboot_and_verify", when, tag, subdir, notes]
|
| + else:
|
| + status = ["job.end_reboot", subdir, tag, notes]
|
| + self.kernel.job.next_step_prepend.expect_call(status)
|
| + self.kernel.job.config_get.expect_call(
|
| + 'boot.default_args').and_return(base_args)
|
| + kernel._add_kernel_to_bootloader.expect_call(
|
| + self.kernel.job.bootloader, base_args, tag,
|
| + args_, self.kernel.image, self.kernel.initrd)
|
| + utils.system.expect_call('touch /fastboot')
|
| + self.kernel.job.start_reboot.expect_call()
|
| + self.kernel.job.reboot.expect_call(tag=tag)
|
| +
|
| + # run and check
|
| + self.kernel._boot_kernel(args=args, ident_check=ident_check,
|
| + expected_ident=tag, subdir=subdir, notes=notes)
|
| + self.god.check_playback()
|
| +
|
| +
|
| + def test_boot_kernel(self):
|
| + self.boot_kernel(ident_check=False)
|
| + self.boot_kernel(ident_check=True)
|
| +
|
| +
|
| class TestKernel(unittest.TestCase):
|
| def setUp(self):
|
| self.god = mock.mock_god()
|
| @@ -473,47 +561,6 @@ class TestKernel(unittest.TestCase):
|
| self.god.check_playback()
|
|
|
|
|
| - def _setup_add_to_bootloader(self, tag='autotest', args='', image='image',
|
| - initrd='initrd', base_args='baseargs',
|
| - bootloader_args='baseargs',
|
| - bootloader_root=None):
|
| - self.construct_kernel()
|
| -
|
| - # setup
|
| - self.kernel.image = image
|
| - self.kernel.initrd = initrd
|
| -
|
| - # record
|
| - self.job.config_get.expect_call(
|
| - 'boot.default_args').and_return(base_args)
|
| - self.job.bootloader.remove_kernel.expect_call(tag)
|
| - self.job.bootloader.add_kernel.expect_call(
|
| - image, tag, initrd=initrd, args=bootloader_args,
|
| - root=bootloader_root)
|
| -
|
| -
|
| - def test_add_to_bootloader(self):
|
| - # setup
|
| - self._setup_add_to_bootloader()
|
| -
|
| - # run and check
|
| - self.kernel.add_to_bootloader()
|
| - self.god.check_playback()
|
| -
|
| -
|
| - def test_add_to_bootloader_root_args(self):
|
| - # setup
|
| - args = 'root=/dev/newroot arg3'
|
| - self._setup_add_to_bootloader(args=args,
|
| - base_args='arg1 root=/dev/oldroot arg2',
|
| - bootloader_args='arg1 arg2 arg3',
|
| - bootloader_root='/dev/newroot')
|
| -
|
| - # run and check
|
| - self.kernel.add_to_bootloader(args=args)
|
| - self.god.check_playback()
|
| -
|
| -
|
| def test_get_kernel_build_arch1(self):
|
| self.construct_kernel()
|
|
|
| @@ -573,51 +620,23 @@ class TestKernel(unittest.TestCase):
|
| self.construct_kernel()
|
| self.god.stub_function(self.kernel, "get_kernel_build_ident")
|
| self.god.stub_function(self.kernel, "install")
|
| - self.god.stub_function(self.kernel, "add_to_bootloader")
|
| + self.god.stub_function(self.kernel, "_boot_kernel")
|
| self.kernel.applied_patches = "applied_patches"
|
| - when = 1
|
| - args = ''
|
| - self.kernel.installed_as = False
|
| -
|
| - # record
|
| - self.kernel.get_kernel_build_ident.expect_call().and_return("ident")
|
| - time.time.expect_call().and_return(when)
|
| - args += " IDENT=%d" % (when)
|
| - self.job.next_step_prepend.expect_call(["job.end_reboot_and_verify",
|
| - when, "ident", self.subdir, self.kernel.applied_patches])
|
| - self.kernel.install.expect_call()
|
| - self.kernel.add_to_bootloader.expect_call(args=args,
|
| - tag=False)
|
| - self.job.start_reboot.expect_call()
|
| - self.job.reboot.expect_call(tag=False)
|
| -
|
| - # run and check
|
| - self.kernel.boot()
|
| - self.god.check_playback()
|
| -
|
| -
|
| - def test_boot_without_ident(self):
|
| - self.construct_kernel()
|
| - self.god.stub_function(self.kernel, "get_kernel_build_ident")
|
| - self.god.stub_function(self.kernel, "install")
|
| - self.god.stub_function(self.kernel, "add_to_bootloader")
|
| - self.kernel.applied_patches = "applied_patches"
|
| - when = 1
|
| + self.kernel.installed_as = None
|
| args = ''
|
| - self.kernel.installed_as = False
|
| + expected_ident = 'ident'
|
| + ident = True
|
|
|
| # record
|
| - self.kernel.get_kernel_build_ident.expect_call().and_return("ident")
|
| - self.job.next_step_prepend.expect_call(["job.end_reboot",
|
| - self.subdir, "ident", self.kernel.applied_patches])
|
| self.kernel.install.expect_call()
|
| - self.kernel.add_to_bootloader.expect_call(args=args,
|
| - tag=False)
|
| - self.job.start_reboot.expect_call()
|
| - self.job.reboot.expect_call(tag=False)
|
| + self.kernel.get_kernel_build_ident.expect_call(
|
| + ).and_return(expected_ident)
|
| + self.kernel._boot_kernel.expect_call(
|
| + args, ident, expected_ident,
|
| + self.subdir, self.kernel.applied_patches)
|
|
|
| # run and check
|
| - self.kernel.boot(ident=False)
|
| + self.kernel.boot(args=args, ident=ident)
|
| self.god.check_playback()
|
|
|
|
|
|
|