コード例 #1
0
def test_get_build_commands(monkeypatch):
    class Options:
        colcon_ament_cmake_args = list()
        colcon_catkin_cmake_args = list()
        colcon_cmake_args = list()
        colcon_packages = list()
        colcon_packages_ignore = list()

    plugin = colcon.ColconPlugin(part_name="my-part", options=Options())

    monkeypatch.setattr(sys, "path", ["", "/test"])
    monkeypatch.setattr(sys, "executable", "/test/python3")
    monkeypatch.setattr(_ros, "__file__", "/test/_ros.py")
    monkeypatch.setattr(os, "environ", dict())

    assert plugin.get_build_commands() == [
        'state="$(set +o)"',
        "set +u",
        ". /opt/ros/$ROS_DISTRO/setup.sh",
        'eval "$(state)"',
        "if [ ! -f /etc/ros/rosdep/sources.list.d/20-default.list ]; then sudo rosdep "
        "init; fi",
        "rosdep update --include-eol-distros --rosdistro $ROS_DISTRO",
        "rosdep install --default-yes --ignore-packages-from-source --from-paths $SNAPCRAFT_PART_SRC",
        "colcon build "
        "--base-paths $SNAPCRAFT_PART_SRC --build-base $SNAPCRAFT_PART_BUILD "
        "--merge-install --install-base $SNAPCRAFT_PART_INSTALL "
        "--parallel-workers ${SNAPCRAFT_PARALLEL_BUILD_COUNT}",
        "env -i LANG=C.UTF-8 LC_ALL=C.UTF-8 /test/python3 -I "
        "/test/_ros.py "
        "stage-runtime-dependencies --part-src $SNAPCRAFT_PART_SRC --part-install $SNAPCRAFT_PART_INSTALL "
        "--ros-distro $ROS_DISTRO --target-arch $SNAPCRAFT_TARGET_ARCH",
    ]
コード例 #2
0
ファイル: test_colcon.py プロジェクト: nessita/snapcraft
def test_get_build_environment():
    plugin = colcon.ColconPlugin(part_name="my-part", options=lambda: None)

    assert plugin.get_build_environment() == {
        "AMENT_PYTHON_EXECUTABLE": "/usr/bin/python3",
        "COLCON_PYTHON_EXECUTABLE": "/usr/bin/python3",
        "ROS_PYTHON_VERSION": "3",
    }
コード例 #3
0
ファイル: test_colcon.py プロジェクト: nessita/snapcraft
def test_get_build_packages():
    plugin = colcon.ColconPlugin(part_name="my-part", options=lambda: None)

    assert plugin.get_build_packages() == {
        "python3-colcon-common-extensions",
        "python3-rosdep",
        "python3-rosinstall",
        "python3-wstool",
    }
コード例 #4
0
ファイル: test_colcon.py プロジェクト: nessita/snapcraft
def test_get_build_commands_with_all_properties(monkeypatch):
    class Options:
        colcon_ament_cmake_args = ["ament", "args..."]
        colcon_catkin_cmake_args = ["catkin", "args..."]
        colcon_cmake_args = ["cmake", "args..."]
        colcon_packages = ["package1", "package2..."]
        colcon_packages_ignore = ["ipackage1", "ipackage2..."]

    plugin = colcon.ColconPlugin(part_name="my-part", options=Options())

    monkeypatch.setattr(sys, "path", ["", "/test"])
    monkeypatch.setattr(sys, "executable", "/test/python3")
    monkeypatch.setattr(_ros, "__file__", "/test/_ros.py")
    monkeypatch.setattr(
        os,
        "environ",
        dict(
            FOO="baR",
            PATH="/bin:/test",
            SNAP="TESTSNAP",
            SNAP_ARCH="TESTARCH",
            SNAP_NAME="TESTSNAPNAME",
            SNAP_VERSION="TESTV1",
            http_proxy="http://foo",
            https_proxy="https://bar",
        ),
    )

    assert plugin.get_build_commands() == [
        'state="$(set +o)"',
        "set +u",
        'if [ -f "${SNAPCRAFT_PART_INSTALL}"/opt/ros/snap/setup.sh ]; then',
        'COLCON_CURRENT_PREFIX="${SNAPCRAFT_PART_INSTALL}"/opt/ros/snap . "${SNAPCRAFT_PART_INSTALL}"/opt/ros/snap/setup.sh',
        "fi",
        '. /opt/ros/"${ROS_DISTRO}"/local_setup.sh',
        'eval "${state}"',
        "if [ ! -f /etc/ros/rosdep/sources.list.d/20-default.list ]; then sudo rosdep "
        "init; fi",
        'rosdep update --include-eol-distros --rosdistro "${ROS_DISTRO}"',
        'rosdep install --default-yes --ignore-packages-from-source --from-paths "${SNAPCRAFT_PART_SRC}"',
        "colcon build "
        '--base-paths "${SNAPCRAFT_PART_SRC}" --build-base "${SNAPCRAFT_PART_BUILD}" '
        '--merge-install --install-base "${SNAPCRAFT_PART_INSTALL}"/opt/ros/snap '
        "--packages-ignore ipackage1 ipackage2... --packages-select package1 "
        "package2... --cmake-args cmake args... "
        "--ament-cmake-args ament args... --catkin-cmake-args catkin "
        'args... --parallel-workers "${SNAPCRAFT_PARALLEL_BUILD_COUNT}"',
        'if [ -f "${SNAPCRAFT_PART_INSTALL}"/opt/ros/snap/COLCON_IGNORE ]; then',
        'rm "${SNAPCRAFT_PART_INSTALL}"/opt/ros/snap/COLCON_IGNORE',
        "fi",
        "env -i LANG=C.UTF-8 LC_ALL=C.UTF-8 PATH=/bin:/test SNAP=TESTSNAP "
        "SNAP_ARCH=TESTARCH SNAP_NAME=TESTSNAPNAME SNAP_VERSION=TESTV1 "
        "http_proxy=http://foo https_proxy=https://bar "
        "/test/python3 -I /test/_ros.py "
        'stage-runtime-dependencies --part-src "${SNAPCRAFT_PART_SRC}" --part-install "${SNAPCRAFT_PART_INSTALL}" '
        '--ros-version "${ROS_VERSION}" --ros-distro "${ROS_DISTRO}" --target-arch "${SNAPCRAFT_TARGET_ARCH}"',
    ]
コード例 #5
0
def test_get_build_commands_with_all_properties(monkeypatch):
    class Options:
        colcon_ament_cmake_args = ["ament", "args..."]
        colcon_catkin_cmake_args = ["catkin", "args..."]
        colcon_cmake_args = ["cmake", "args..."]
        colcon_packages = ["package1", "package2..."]
        colcon_packages_ignore = ["ipackage1", "ipackage2..."]

    plugin = colcon.ColconPlugin(part_name="my-part", options=Options())

    monkeypatch.setattr(sys, "path", ["", "/test"])
    monkeypatch.setattr(sys, "executable", "/test/python3")
    monkeypatch.setattr(_ros, "__file__", "/test/_ros.py")
    monkeypatch.setattr(
        os,
        "environ",
        dict(
            FOO="baR",
            PATH="/bin:/test",
            SNAP="TESTSNAP",
            SNAP_ARCH="TESTARCH",
            SNAP_NAME="TESTSNAPNAME",
            SNAP_VERSION="TESTV1",
            http_proxy="http://foo",
            https_proxy="https://bar",
        ),
    )

    assert plugin.get_build_commands() == [
        ". /opt/ros/$ROS_DISTRO/setup.sh",
        "if [ ! -f /etc/ros/rosdep/sources.list.d/20-default.list ]; then sudo rosdep "
        "init; fi",
        "rosdep update --include-eol-distros --rosdistro $ROS_DISTRO",
        "rosdep install --default-yes --ignore-packages-from-source --from-paths .",
        "colcon build --merge-install --install-base $SNAPCRAFT_PART_INSTALL "
        "--packages-ignore ipackage1 ipackage2... --packages-select package1 "
        "package2... --ament-cmake-args ament args... --catkin-cmake-args catkin "
        "args... --parallel-workers ${SNAPCRAFT_PARALLEL_BUILD_COUNT}",
        "env -i LANG=C.UTF-8 LC_ALL=C.UTF-8 PATH=/bin:/test SNAP=TESTSNAP "
        "SNAP_ARCH=TESTARCH SNAP_NAME=TESTSNAPNAME SNAP_VERSION=TESTV1 "
        "http_proxy=http://foo https_proxy=https://bar "
        "/test/python3 -I /test/_ros.py "
        "stage-runtime-dependencies --part-install $SNAPCRAFT_PART_INSTALL "
        "--ros-distro $ROS_DISTRO",
    ]
コード例 #6
0
ファイル: test_colcon.py プロジェクト: nessita/snapcraft
def test_get_build_commands(monkeypatch):
    class Options:
        colcon_ament_cmake_args = list()
        colcon_catkin_cmake_args = list()
        colcon_cmake_args = list()
        colcon_packages = list()
        colcon_packages_ignore = list()

    plugin = colcon.ColconPlugin(part_name="my-part", options=Options())

    monkeypatch.setattr(sys, "path", ["", "/test"])
    monkeypatch.setattr(sys, "executable", "/test/python3")
    monkeypatch.setattr(_ros, "__file__", "/test/_ros.py")
    monkeypatch.setattr(os, "environ", dict())

    assert plugin.get_build_commands() == [
        'state="$(set +o)"',
        "set +u",
        'if [ -f "${SNAPCRAFT_PART_INSTALL}"/opt/ros/snap/setup.sh ]; then',
        'COLCON_CURRENT_PREFIX="${SNAPCRAFT_PART_INSTALL}"/opt/ros/snap . "${SNAPCRAFT_PART_INSTALL}"/opt/ros/snap/setup.sh',
        "fi",
        '. /opt/ros/"${ROS_DISTRO}"/local_setup.sh',
        'eval "${state}"',
        "if [ ! -f /etc/ros/rosdep/sources.list.d/20-default.list ]; then sudo rosdep "
        "init; fi",
        'rosdep update --include-eol-distros --rosdistro "${ROS_DISTRO}"',
        'rosdep install --default-yes --ignore-packages-from-source --from-paths "${SNAPCRAFT_PART_SRC}"',
        "colcon build "
        '--base-paths "${SNAPCRAFT_PART_SRC}" --build-base "${SNAPCRAFT_PART_BUILD}" '
        '--merge-install --install-base "${SNAPCRAFT_PART_INSTALL}"/opt/ros/snap '
        '--parallel-workers "${SNAPCRAFT_PARALLEL_BUILD_COUNT}"',
        'if [ -f "${SNAPCRAFT_PART_INSTALL}"/opt/ros/snap/COLCON_IGNORE ]; then',
        'rm "${SNAPCRAFT_PART_INSTALL}"/opt/ros/snap/COLCON_IGNORE',
        "fi",
        "env -i LANG=C.UTF-8 LC_ALL=C.UTF-8 /test/python3 -I "
        "/test/_ros.py "
        'stage-runtime-dependencies --part-src "${SNAPCRAFT_PART_SRC}" --part-install "${SNAPCRAFT_PART_INSTALL}" '
        '--ros-version "${ROS_VERSION}" --ros-distro "${ROS_DISTRO}" --target-arch "${SNAPCRAFT_TARGET_ARCH}"',
    ]
コード例 #7
0
ファイル: test_colcon.py プロジェクト: nessita/snapcraft
def test_out_of_source_build_property():
    plugin = colcon.ColconPlugin(part_name="my-part", options=lambda: None)

    assert plugin.out_of_source_build