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

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

Issue 3541002: Revert "Merge remote branch 'cros/upstream' into tempbranch2" (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/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
97 class TestKernel(unittest.TestCase): 9 class TestKernel(unittest.TestCase):
98 def setUp(self): 10 def setUp(self):
99 self.god = mock.mock_god() 11 self.god = mock.mock_god()
100 12
101 logging.disable(logging.CRITICAL) 13 logging.disable(logging.CRITICAL)
102 14
103 self.god.stub_function(time, "time") 15 self.god.stub_function(time, "time")
104 self.god.stub_function(os, "mkdir") 16 self.god.stub_function(os, "mkdir")
105 self.god.stub_function(os, "chdir") 17 self.god.stub_function(os, "chdir")
106 self.god.stub_function(os, "symlink") 18 self.god.stub_function(os, "symlink")
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 self.kernel.get_kernel_build_ver.expect_call().and_return('2.6.24') 466 self.kernel.get_kernel_build_ver.expect_call().and_return('2.6.24')
555 self.kernel.mkinitrd.expect_call('2.6.24', '/boot/vmlinuz-autotest', 467 self.kernel.mkinitrd.expect_call('2.6.24', '/boot/vmlinuz-autotest',
556 '/boot/System.map-autotest', '/boot/initrd-autotest') 468 '/boot/System.map-autotest', '/boot/initrd-autotest')
557 self.job.record.expect_call('GOOD', self.subdir, 'kernel.install') 469 self.job.record.expect_call('GOOD', self.subdir, 'kernel.install')
558 470
559 # run and check 471 # run and check
560 self.kernel.install() 472 self.kernel.install()
561 self.god.check_playback() 473 self.god.check_playback()
562 474
563 475
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
564 def test_get_kernel_build_arch1(self): 517 def test_get_kernel_build_arch1(self):
565 self.construct_kernel() 518 self.construct_kernel()
566 519
567 # record 520 # record
568 utils.get_current_kernel_arch.expect_call().and_return("i386") 521 utils.get_current_kernel_arch.expect_call().and_return("i386")
569 522
570 # run and check 523 # run and check
571 self.assertEquals(self.kernel.get_kernel_build_arch(), "i386") 524 self.assertEquals(self.kernel.get_kernel_build_arch(), "i386")
572 self.god.check_playback() 525 self.god.check_playback()
573 526
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 # run and check 566 # run and check
614 self.assertEquals(self.kernel.get_kernel_build_ident(), 567 self.assertEquals(self.kernel.get_kernel_build_ident(),
615 "AwesomeRelease::1.0") 568 "AwesomeRelease::1.0")
616 self.god.check_playback() 569 self.god.check_playback()
617 570
618 571
619 def test_boot(self): 572 def test_boot(self):
620 self.construct_kernel() 573 self.construct_kernel()
621 self.god.stub_function(self.kernel, "get_kernel_build_ident") 574 self.god.stub_function(self.kernel, "get_kernel_build_ident")
622 self.god.stub_function(self.kernel, "install") 575 self.god.stub_function(self.kernel, "install")
623 self.god.stub_function(self.kernel, "_boot_kernel") 576 self.god.stub_function(self.kernel, "add_to_bootloader")
624 self.kernel.applied_patches = "applied_patches" 577 self.kernel.applied_patches = "applied_patches"
625 self.kernel.installed_as = None 578 when = 1
626 args = '' 579 args = ''
627 expected_ident = 'ident' 580 self.kernel.installed_as = False
628 ident = True
629 581
630 # record 582 # 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])
631 self.kernel.install.expect_call() 588 self.kernel.install.expect_call()
632 self.kernel.get_kernel_build_ident.expect_call( 589 self.kernel.add_to_bootloader.expect_call(args=args,
633 ).and_return(expected_ident) 590 tag=False)
634 self.kernel._boot_kernel.expect_call( 591 self.job.start_reboot.expect_call()
635 args, ident, expected_ident, 592 self.job.reboot.expect_call(tag=False)
636 self.subdir, self.kernel.applied_patches)
637 593
638 # run and check 594 # run and check
639 self.kernel.boot(args=args, ident=ident) 595 self.kernel.boot()
640 self.god.check_playback() 596 self.god.check_playback()
641 597
642 598
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
643 if __name__ == "__main__": 624 if __name__ == "__main__":
644 unittest.main() 625 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