xref: /OK3568_Linux_fs/buildroot/support/testing/tests/fs/test_squashfs.py (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunimport os
2*4882a593Smuzhiyun
3*4882a593Smuzhiyunimport infra.basetest
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun
6*4882a593Smuzhiyunclass TestSquashfs(infra.basetest.BRTest):
7*4882a593Smuzhiyun    config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
8*4882a593Smuzhiyun        """
9*4882a593Smuzhiyun        BR2_TARGET_ROOTFS_SQUASHFS=y
10*4882a593Smuzhiyun        BR2_TARGET_ROOTFS_SQUASHFS4_LZO=y
11*4882a593Smuzhiyun        # BR2_TARGET_ROOTFS_TAR is not set
12*4882a593Smuzhiyun        """
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun    def test_run(self):
15*4882a593Smuzhiyun        unsquashfs_cmd = ["host/bin/unsquashfs", "-s", "images/rootfs.squashfs"]
16*4882a593Smuzhiyun        out = infra.run_cmd_on_host(self.builddir, unsquashfs_cmd)
17*4882a593Smuzhiyun        out = out.splitlines()
18*4882a593Smuzhiyun        self.assertEqual(out[0],
19*4882a593Smuzhiyun                         "Found a valid SQUASHFS 4:0 superblock on images/rootfs.squashfs.")
20*4882a593Smuzhiyun        self.assertEqual(out[3], "Compression lzo")
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun        img = os.path.join(self.builddir, "images", "rootfs.squashfs")
23*4882a593Smuzhiyun        infra.img_round_power2(img)
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun        self.emulator.boot(arch="armv7",
26*4882a593Smuzhiyun                           kernel="builtin",
27*4882a593Smuzhiyun                           kernel_cmdline=["root=/dev/mmcblk0",
28*4882a593Smuzhiyun                                           "rootfstype=squashfs"],
29*4882a593Smuzhiyun                           options=["-drive", "file={},if=sd,format=raw".format(img)])
30*4882a593Smuzhiyun        self.emulator.login()
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun        cmd = "mount | grep '/dev/root on / type squashfs'"
33*4882a593Smuzhiyun        self.assertRunOk(cmd)
34