示例#1
0
def test_get_build_plan_build_for_all(snapcraft_yaml, mocker, new_dir):
    """Test get_build_plan with `build-for: all`."""
    mocker.patch(
        "snapcraft.parts.lifecycle.get_host_architecture", return_value="aarch64"
    )
    yaml_data = {
        "base": "core22",
        "architectures": [{"build-on": "aarch64", "build-for": "all"}],
    }

    snapcraft_yaml_data = snapcraft_yaml(**yaml_data)

    assert parts_lifecycle.get_build_plan(
        snapcraft_yaml_data, parsed_args=argparse.Namespace(build_for=None)
    ) == [("aarch64", "all")]
示例#2
0
def test_get_build_plan_list_with_matching_element_and_env_var(
    snapcraft_yaml, mocker, monkeypatch, new_dir
):
    """The build plan should be filtered down when `SNAPCRAFT_BUILD_FOR` is defined."""
    mocker.patch(
        "snapcraft.parts.lifecycle.get_host_architecture", return_value="aarch64"
    )
    yaml_data = {
        "base": "core22",
        "architectures": [
            {"build-on": "aarch64", "build-for": "aarch64"},
            {"build-on": "aarch64", "build-for": "armhf"},
        ],
    }

    snapcraft_yaml_data = snapcraft_yaml(**yaml_data)

    assert parts_lifecycle.get_build_plan(
        snapcraft_yaml_data, parsed_args=argparse.Namespace(build_for="aarch64")
    ) == [("aarch64", "aarch64")]
示例#3
0
def test_get_build_plan_list_without_matching_element(snapcraft_yaml, mocker, new_dir):
    """The build plan should be empty when no build has a `build-on` that matches
    the host architecture.
    """
    mocker.patch(
        "snapcraft.parts.lifecycle.get_host_architecture", return_value="aarch64"
    )
    yaml_data = {
        "base": "core22",
        "architectures": ["powerpc", "armhf"],
    }

    snapcraft_yaml_data = snapcraft_yaml(**yaml_data)

    assert (
        parts_lifecycle.get_build_plan(
            snapcraft_yaml_data, parsed_args=argparse.Namespace(build_for=None)
        )
        == []
    )
示例#4
0
def test_get_build_plan_list_without_matching_element_and_build_for_arg(
    snapcraft_yaml, mocker, monkeypatch, new_dir
):
    """The build plan should be empty when no plan has a matching `build_for`
    matching `SNAPCRAFT_BUILD_FOR.`"""
    mocker.patch(
        "snapcraft.parts.lifecycle.get_host_architecture", return_value="aarch64"
    )
    yaml_data = {
        "base": "core22",
        "architectures": [
            {"build-on": "aarch64", "build-for": "aarch64"},
            {"build-on": "aarch64", "build-for": "armhf"},
        ],
    }

    snapcraft_yaml_data = snapcraft_yaml(**yaml_data)

    assert (
        parts_lifecycle.get_build_plan(
            snapcraft_yaml_data, parsed_args=argparse.Namespace(build_for="arm64")
        )
        == []
    )
示例#5
0
def test_get_build_plan_with_matching_elements(snapcraft_yaml, mocker, new_dir):
    """The build plan should only contain builds where `build-on` matches
    the host architecture.
    """
    mocker.patch(
        "snapcraft.parts.lifecycle.get_host_architecture", return_value="aarch64"
    )
    yaml_data = {
        "base": "core22",
        "architectures": [
            {"build-on": "aarch64", "build-for": "aarch64"},
            {"build-on": "aarch64", "build-for": "arm64"},
            {"build-on": "armhf", "build-for": "armhf"},
        ],
    }

    snapcraft_yaml_data = snapcraft_yaml(**yaml_data)

    assert parts_lifecycle.get_build_plan(
        snapcraft_yaml_data, parsed_args=argparse.Namespace(build_for=None)
    ) == [
        ("aarch64", "aarch64"),
        ("aarch64", "arm64"),
    ]