1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| import os
| import subprocess
| import infra.basetest
|
|
| class InitSystemBase(infra.basetest.BRTest):
|
| def start_emulator(self, fs_type, kernel=None, dtb=None, init=None):
| img = os.path.join(self.builddir, "images", "rootfs.{}".format(fs_type))
| subprocess.call(["truncate", "-s", "%1M", img])
|
| options = ["-drive",
| "file={},if=sd,format=raw".format(img),
| "-M", "vexpress-a9"]
|
| if kernel is None:
| kernel = "builtin"
| else:
| kernel = os.path.join(self.builddir, "images", kernel)
| options.extend(["-dtb", os.path.join(self.builddir, "images",
| "{}.dtb".format(dtb))])
|
| kernel_cmdline = ["root=/dev/mmcblk0",
| "rootfstype={}".format(fs_type),
| "rootwait",
| "ro",
| "console=ttyAMA0"]
|
| if init is not None:
| kernel_cmdline.extend(["init={}".format(init)])
|
| self.emulator.boot(arch="armv7",
| kernel=kernel,
| kernel_cmdline=kernel_cmdline,
| options=options)
|
| if init is None:
| self.emulator.login()
|
| def check_init(self, path):
| cmd = "cmp /proc/1/exe {}".format(path)
| _, exit_code = self.emulator.run(cmd)
| self.assertEqual(exit_code, 0)
|
| def check_network(self, interface, exitCode=0):
| cmd = "ip addr show {} |grep inet".format(interface)
| _, exit_code = self.emulator.run(cmd)
| self.assertEqual(exit_code, exitCode)
|
|