Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Side by Side Diff: client/bin/kernel_unittest.py

Issue 3554003: Merge remote branch 'cros/upstream' into tempbranch3 (Closed) Base URL: http://git.chromium.org/git/autotest.git
Patch Set: Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « client/bin/kernel.py ('k') | client/bin/partition.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 2
3 import unittest, os, time, re, glob, logging 3 import unittest, os, time, re, glob, logging
4 import common 4 import common
5 from autotest_lib.client.common_lib.test_utils import mock 5 from autotest_lib.client.common_lib.test_utils import mock
6 from autotest_lib.client.bin import kernel, job, utils, kernelexpand 6 from autotest_lib.client.bin import kernel, job, utils, kernelexpand
7 from autotest_lib.client.bin import kernel_config, boottool, os_dep 7 from autotest_lib.client.bin import kernel_config, boottool, os_dep
8 8
9
10 class TestAddKernelToBootLoader(unittest.TestCase):
11
12 def add_to_bootloader(self, base_args, args, bootloader_args,
13 bootloader_root, tag='image', image='image',
14 initrd='initrd'):
15 god = mock.mock_god()
16 bootloader = god.create_mock_class(boottool.boottool, "boottool")
17
18 # record
19 bootloader.remove_kernel.expect_call(tag)
20 bootloader.add_kernel.expect_call(image, tag, initrd=initrd,
21 args=bootloader_args,
22 root=bootloader_root)
23
24 # run and check
25 kernel._add_kernel_to_bootloader(bootloader, base_args, tag, args,
26 image, initrd)
27 god.check_playback()
28
29
30 def test_add_kernel_to_bootloader(self):
31 self.add_to_bootloader(base_args='baseargs', args='',
32 bootloader_args='baseargs', bootloader_root=None)
33 self.add_to_bootloader(base_args='arg1 root=/dev/oldroot arg2',
34 args='root=/dev/newroot arg3',
35 bootloader_args='arg1 arg2 arg3',
36 bootloader_root='/dev/newroot')
37
38
39 class TestBootableKernel(unittest.TestCase):
40
41 def setUp(self):
42 self.god = mock.mock_god()
43 self.god.stub_function(time, "time")
44 self.god.stub_function(utils, "system")
45 self.god.stub_function(kernel, "_add_kernel_to_bootloader")
46 job_ = self.god.create_mock_class(job.job, "job")
47 self.kernel = kernel.BootableKernel(job_)
48 self.kernel.job.bootloader = self.god.create_mock_class(
49 boottool.boottool, "boottool")
50
51
52 def tearDown(self):
53 # note: time.time() can only be unstubbed via tearDown()
54 self.god.unstub_all()
55
56
57 def boot_kernel(self, ident_check):
58 notes = "applied_patches"
59 when = 1
60 args = ''
61 base_args = 'base_args'
62 tag = 'ident'
63 subdir = 'subdir'
64 self.kernel.image = 'image'
65 self.kernel.initrd = 'initrd'
66 self.kernel.installed_as = tag
67
68 # record
69 args_ = args
70 if ident_check:
71 time.time.expect_call().and_return(when)
72 args_ += " IDENT=%d" % when
73 status = ["job.end_reboot_and_verify", when, tag, subdir, notes]
74 else:
75 status = ["job.end_reboot", subdir, tag, notes]
76 self.kernel.job.next_step_prepend.expect_call(status)
77 self.kernel.job.config_get.expect_call(
78 'boot.default_args').and_return(base_args)
79 kernel._add_kernel_to_bootloader.expect_call(
80 self.kernel.job.bootloader, base_args, tag,
81 args_, self.kernel.image, self.kernel.initrd)
82 utils.system.expect_call('touch /fastboot')
83 self.kernel.job.start_reboot.expect_call()
84 self.kernel.job.reboot.expect_call(tag=tag)
85
86 # run and check
87 self.kernel._boot_kernel(args=args, ident_check=ident_check,
88 expected_ident=tag, subdir=subdir, notes=notes)
89 self.god.check_playback()
90
91
92 def test_boot_kernel(self):
93 self.boot_kernel(ident_check=False)
94 self.boot_kernel(ident_check=True)
95
96
9 class TestKernel(unittest.TestCase): 97 class TestKernel(unittest.TestCase):
10 def setUp(self): 98 def setUp(self):
11 self.god = mock.mock_god() 99 self.god = mock.mock_god()
12 100
13 logging.disable(logging.CRITICAL) 101 logging.disable(logging.CRITICAL)
14 102
15 self.god.stub_function(time, "time") 103 self.god.stub_function(time, "time")
16 self.god.stub_function(os, "mkdir") 104 self.god.stub_function(os, "mkdir")
17 self.god.stub_function(os, "chdir") 105 self.god.stub_function(os, "chdir")
18 self.god.stub_function(os, "symlink") 106 self.god.stub_function(os, "symlink")
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 self.kernel.get_kernel_build_ver.expect_call().and_return('2.6.24') 554 self.kernel.get_kernel_build_ver.expect_call().and_return('2.6.24')
467 self.kernel.mkinitrd.expect_call('2.6.24', '/boot/vmlinuz-autotest', 555 self.kernel.mkinitrd.expect_call('2.6.24', '/boot/vmlinuz-autotest',
468 '/boot/System.map-autotest', '/boot/initrd-autotest') 556 '/boot/System.map-autotest', '/boot/initrd-autotest')
469 self.job.record.expect_call('GOOD', self.subdir, 'kernel.install') 557 self.job.record.expect_call('GOOD', self.subdir, 'kernel.install')
470 558
471 # run and check 559 # run and check
472 self.kernel.install() 560 self.kernel.install()
473 self.god.check_playback() 561 self.god.check_playback()
474 562
475 563
476 def _setup_add_to_bootloader(self, tag='autotest', args='', image='image',
477 initrd='initrd', base_args='baseargs',
478 bootloader_args='baseargs',
479 bootloader_root=None):
480 self.construct_kernel()
481
482 # setup
483 self.kernel.image = image
484 self.kernel.initrd = initrd
485
486 # record
487 self.job.config_get.expect_call(
488 'boot.default_args').and_return(base_args)
489 self.job.bootloader.remove_kernel.expect_call(tag)
490 self.job.bootloader.add_kernel.expect_call(
491 image, tag, initrd=initrd, args=bootloader_args,
492 root=bootloader_root)
493
494
495 def test_add_to_bootloader(self):
496 # setup
497 self._setup_add_to_bootloader()
498
499 # run and check
500 self.kernel.add_to_bootloader()
501 self.god.check_playback()
502
503
504 def test_add_to_bootloader_root_args(self):
505 # setup
506 args = 'root=/dev/newroot arg3'
507 self._setup_add_to_bootloader(args=args,
508 base_args='arg1 root=/dev/oldroot arg2',
509 bootloader_args='arg1 arg2 arg3',
510 bootloader_root='/dev/newroot')
511
512 # run and check
513 self.kernel.add_to_bootloader(args=args)
514 self.god.check_playback()
515
516
517 def test_get_kernel_build_arch1(self): 564 def test_get_kernel_build_arch1(self):
518 self.construct_kernel() 565 self.construct_kernel()
519 566
520 # record 567 # record
521 utils.get_current_kernel_arch.expect_call().and_return("i386") 568 utils.get_current_kernel_arch.expect_call().and_return("i386")
522 569
523 # run and check 570 # run and check
524 self.assertEquals(self.kernel.get_kernel_build_arch(), "i386") 571 self.assertEquals(self.kernel.get_kernel_build_arch(), "i386")
525 self.god.check_playback() 572 self.god.check_playback()
526 573
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 # run and check 613 # run and check
567 self.assertEquals(self.kernel.get_kernel_build_ident(), 614 self.assertEquals(self.kernel.get_kernel_build_ident(),
568 "AwesomeRelease::1.0") 615 "AwesomeRelease::1.0")
569 self.god.check_playback() 616 self.god.check_playback()
570 617
571 618
572 def test_boot(self): 619 def test_boot(self):
573 self.construct_kernel() 620 self.construct_kernel()
574 self.god.stub_function(self.kernel, "get_kernel_build_ident") 621 self.god.stub_function(self.kernel, "get_kernel_build_ident")
575 self.god.stub_function(self.kernel, "install") 622 self.god.stub_function(self.kernel, "install")
576 self.god.stub_function(self.kernel, "add_to_bootloader") 623 self.god.stub_function(self.kernel, "_boot_kernel")
577 self.kernel.applied_patches = "applied_patches" 624 self.kernel.applied_patches = "applied_patches"
578 when = 1 625 self.kernel.installed_as = None
579 args = '' 626 args = ''
580 self.kernel.installed_as = False 627 expected_ident = 'ident'
628 ident = True
581 629
582 # record 630 # record
583 self.kernel.get_kernel_build_ident.expect_call().and_return("ident")
584 time.time.expect_call().and_return(when)
585 args += " IDENT=%d" % (when)
586 self.job.next_step_prepend.expect_call(["job.end_reboot_and_verify",
587 when, "ident", self.subdir, self.kernel.applied_patches])
588 self.kernel.install.expect_call() 631 self.kernel.install.expect_call()
589 self.kernel.add_to_bootloader.expect_call(args=args, 632 self.kernel.get_kernel_build_ident.expect_call(
590 tag=False) 633 ).and_return(expected_ident)
591 self.job.start_reboot.expect_call() 634 self.kernel._boot_kernel.expect_call(
592 self.job.reboot.expect_call(tag=False) 635 args, ident, expected_ident,
636 self.subdir, self.kernel.applied_patches)
593 637
594 # run and check 638 # run and check
595 self.kernel.boot() 639 self.kernel.boot(args=args, ident=ident)
596 self.god.check_playback() 640 self.god.check_playback()
597 641
598 642
599 def test_boot_without_ident(self):
600 self.construct_kernel()
601 self.god.stub_function(self.kernel, "get_kernel_build_ident")
602 self.god.stub_function(self.kernel, "install")
603 self.god.stub_function(self.kernel, "add_to_bootloader")
604 self.kernel.applied_patches = "applied_patches"
605 when = 1
606 args = ''
607 self.kernel.installed_as = False
608
609 # record
610 self.kernel.get_kernel_build_ident.expect_call().and_return("ident")
611 self.job.next_step_prepend.expect_call(["job.end_reboot",
612 self.subdir, "ident", self.kernel.applied_patches])
613 self.kernel.install.expect_call()
614 self.kernel.add_to_bootloader.expect_call(args=args,
615 tag=False)
616 self.job.start_reboot.expect_call()
617 self.job.reboot.expect_call(tag=False)
618
619 # run and check
620 self.kernel.boot(ident=False)
621 self.god.check_playback()
622
623
624 if __name__ == "__main__": 643 if __name__ == "__main__":
625 unittest.main() 644 unittest.main()
OLDNEW
« no previous file with comments | « client/bin/kernel.py ('k') | client/bin/partition.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698