aboutsummaryrefslogtreecommitdiff
path: root/test/py/tests/test_fs/test_squashfs/test_sqfs_load.py
blob: 9e9006238469a00d0e03d806f343cafb8c621fbc (plain)
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
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2020 Bootlin
# Author: Joao Marcos Costa <joaomarcos.costa@bootlin.com>

import os
import pytest
from sqfs_common import *

@pytest.mark.boardspec('sandbox')
@pytest.mark.buildconfigspec('cmd_fs_generic')
@pytest.mark.buildconfigspec('cmd_squashfs')
@pytest.mark.buildconfigspec('fs_squashfs')
@pytest.mark.requiredtool('mksquashfs')
def test_sqfs_load(u_boot_console):
    build_dir = u_boot_console.config.build_dir
    command = "sqfsload host 0 $kernel_addr_r "

    for opt in comp_opts:
        # generate and load the squashfs image
        try:
            opt.gen_image(build_dir)
        except RuntimeError:
            opt.clean_source(build_dir)
            # skip unsupported compression types
            continue

        path = os.path.join(build_dir, "sqfs-" + opt.name)
        output = u_boot_console.run_command("host bind 0 " + path)

        output = u_boot_console.run_command(command + "xxx")
        assert "File not found." in output

        for (f, s) in zip(opt.files, opt.sizes):
            try:
                output = u_boot_console.run_command(command + f)
                assert str(s) in output
            except:
                assert False
                opt.cleanup(build_dir)

        # test symbolic link
        output = u_boot_console.run_command(command + "sym")
        assert str(opt.sizes[0]) in output

        # remove generated files
        opt.cleanup(build_dir)