master
py 47 lines 1.84 KB
Raw
1 #!/usr/bin/env python3
2 #
3 # Functional test that boots a Linux kernel on a realview arm machine
4 # and checks the console
5 #
6 # SPDX-License-Identifier: GPL-2.0-or-later
7
8 from qemu_test import LinuxKernelTest, exec_command_and_wait_for_pattern
9 from qemu_test import Asset
10
11
12 class RealviewMachine(LinuxKernelTest):
13
14 ASSET_REALVIEW_MPCORE = Asset(
15 ('https://archive.openwrt.org/chaos_calmer/15.05.1/realview/generic/'
16 'openwrt-15.05.1-realview-vmlinux-initramfs.elf'),
17 'd3a01037f33e7512d46d50975588d5c3a0e0cbf25f37afab44775c2a2be523e6')
18
19 def test_realview_ep_mpcore(self):
20 self.require_netdev('user')
21 self.set_machine('realview-eb-mpcore')
22 kernel_path = self.ASSET_REALVIEW_MPCORE.fetch()
23 self.vm.set_console()
24 kernel_param = 'console=ttyAMA0 mem=128M quiet'
25 self.vm.add_args('-kernel', kernel_path,
26 '-append', kernel_param)
27 self.vm.launch()
28 self.wait_for_console_pattern('Please press Enter to activate')
29 prompt = ':/#'
30 exec_command_and_wait_for_pattern(self, '', prompt)
31 exec_command_and_wait_for_pattern(self, 'dmesg', kernel_param)
32 self.wait_for_console_pattern(prompt)
33 exec_command_and_wait_for_pattern(self,
34 ('while ! dmesg | grep "br-lan: port 1(eth0) entered" ;'
35 ' do sleep 1 ; done'),
36 'entered forwarding state')
37 self.wait_for_console_pattern(prompt)
38 exec_command_and_wait_for_pattern(self,
39 'while ! ifconfig | grep "10.0.2.15" ; do sleep 1 ; done',
40 'addr:10.0.2.15')
41 self.wait_for_console_pattern(prompt)
42 exec_command_and_wait_for_pattern(self, 'ping -c 1 10.0.2.2',
43 '1 packets received, 0% packet loss')
44
45
46 if __name__ == '__main__':
47 LinuxKernelTest.main()