~funderscore blog cgit wiki get in touch
aboutsummaryrefslogtreecommitdiff
blob: 320e7ebd295fc9d458f07f0c2cf9b9b906321986 (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
# SPDX-License-Identifier:      GPL-2.0+

"""Fixture for cat command test
"""

import os
import shutil
from subprocess import check_call, CalledProcessError
import pytest

@pytest.fixture(scope='session')
def cat_data(u_boot_config):
    """Set up a file system to be used in cat tests

    Args:
        u_boot_config -- U-Boot configuration.
    """
    mnt_point = u_boot_config.persistent_data_dir + '/test_cat'
    image_path = u_boot_config.persistent_data_dir + '/cat.img'

    try:
        os.mkdir(mnt_point, mode = 0o755)

        with open(mnt_point + '/hello', 'w', encoding = 'ascii') as file:
            file.write('hello world\n')

        check_call(f'virt-make-fs --partition=gpt --size=+1M --type=vfat {mnt_point} {image_path}',
                   shell=True)

        yield image_path
    except CalledProcessError:
        pytest.skip('Setup failed')
    finally:
        shutil.rmtree(mnt_point)
        if os.path.exists(image_path):
            os.remove(image_path)