Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tests: enable core24 plugin tests #5209

Open
wants to merge 22 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
fdb57a5
tests: create the core24 plugins suite
sergiusens Jan 17, 2025
cde70e4
tests: set base to core24 for the plugin suite
sergiusens Jan 17, 2025
2dfb62a
tests: update python interpreter for core24
sergiusens Jan 17, 2025
2f90b1a
tests: update ros2 plugin tests for core24
sergiusens Jan 17, 2025
cc26e17
tests: disable python core24 and gnome extension
sergiusens Jan 17, 2025
edf6221
tests: reorganize dotnet
sergiusens Jan 17, 2025
1e9facc
tests: remove base setting from core24 plugin test
sergiusens Jan 17, 2025
f73ff54
tests: switch core24 plugin suite to run on 22.04
sergiusens Jan 20, 2025
53867c8
chore: update craft parts to 2.3.0
sergiusens Jan 21, 2025
2fee9af
chore: merge main
sergiusens Jan 31, 2025
0e955f9
chore: migrate core24 plugin tests to the suite
sergiusens Jan 31, 2025
ae2a07a
chore: migrate npm to build and run for core24
sergiusens Jan 31, 2025
967d57f
tests: run core24 plugin steps individually
sergiusens Jan 31, 2025
e85929a
Merge branch 'main' into work/CRAFT-3138-core24-plugin-spread
bepri Feb 11, 2025
d4b3da7
tests: add uv tests to core24 plugin suite
bepri Feb 12, 2025
49c5533
tests: use core24 for core24 tests
bepri Feb 12, 2025
22e7808
test: don't use destructive builds for python tests
bepri Feb 12, 2025
3335fc0
Merge branch 'main' into work/CRAFT-3138-core24-plugin-spread
bepri Feb 12, 2025
826973f
test: make python plugin tests run in managed mode
bepri Feb 13, 2025
7ac2f05
Merge remote-tracking branch 'origin/work/CRAFT-3138-core24-plugin-sp…
bepri Feb 13, 2025
3bf9342
Merge branch 'main' into work/CRAFT-3138-core24-plugin-spread
bepri Feb 13, 2025
2e04c38
test: fix python symlink spread tests
bepri Feb 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 15 additions & 10 deletions spread.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -263,18 +263,23 @@ suites:
systems:
- ubuntu-24.04*

# General, core suite
tests/spread/general/:
summary: tests of snapcraft core functionality
tests/spread/core24-suites/plugins/:
summary: core24 plugin tests
systems:
- ubuntu-20.04*
- ubuntu-22.04*
- ubuntu-24.04*

tests/spread/general/hooks/:
summary: tests of snapcraft hook functionality
systems:
- ubuntu-20.04*
- ubuntu-22.04*
# General, core suite
tests/spread/general/:
summary: tests of snapcraft core functionality
systems:
- ubuntu-20.04*
- ubuntu-22.04*

tests/spread/general/hooks/:
summary: tests of snapcraft hook functionality
systems:
- ubuntu-20.04*
- ubuntu-22.04*

# 'build-base: devel' fails due to an issue with the 24.10 buildd image (#4921)
# tests/spread/core-devel/:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
cmake_minimum_required(VERSION 3.5)
project(colcon_ros2_rlcpp_hello)

# Default to C++14
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
endif()

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()

find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(rclcpp_components REQUIRED)
find_package(std_msgs REQUIRED)

# This package installs libraries without exporting them.
# Export the library path to ensure that the installed libraries are available.
if(NOT WIN32)
ament_environment_hooks(
"${ament_cmake_package_templates_ENVIRONMENT_HOOK_LIBRARY_PATH}"
)
endif()

add_executable(colcon_ros2_rlcpp_hello src/hello.cpp)
target_link_libraries(colcon_ros2_rlcpp_hello)
ament_target_dependencies(colcon_ros2_rlcpp_hello rclcpp class_loader)

install(TARGETS
colcon_ros2_rlcpp_hello
DESTINATION lib/${PROJECT_NAME})

ament_package()
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format2.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>colcon_ros2_rlcpp_hello</name>
<version>0.0.1</version>
<description>snapcraft test for rlcpp</description>
<maintainer email="[email protected]">me</maintainer>
<license>Apache License 2.0</license>

<buildtool_depend>ament_cmake</buildtool_depend>

<build_depend condition="$ROS_VERSION == 2">rclcpp</build_depend>
<build_depend>rclcpp_components</build_depend>
<build_depend>std_msgs</build_depend>
<build_depend condition="$ROS_VERSION == 1">fake_package_that_does_not_exists</build_depend>

<exec_depend condition="$ROS_VERSION == 2">rclcpp</exec_depend>
<exec_depend>rclcpp_components</exec_depend>
<exec_depend>std_msgs</exec_depend>

<export>
<build_type>ament_cmake</build_type>
</export>
</package>
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: colcon-ros2-jazzy-hello
version: "1.0"
summary: hello world
description: |
A ROS2 rlcpp-based workspace.

grade: stable
confinement: strict
base: core24

apps:
colcon-ros2-jazzy-hello:
command: opt/ros/jazzy/bin/ros2 run colcon_ros2_rlcpp_hello colcon_ros2_rlcpp_hello
plugs: [network, network-bind]
extensions: [ros2-jazzy]

parts:
hello:
plugin: colcon
source: .
build-packages: [g++, make, vim]
stage-packages: [ros-jazzy-ros2run]
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Copyright 2016 Open Source Robotics Foundation, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#include <memory>
#include "rclcpp/rclcpp.hpp"

int main(int argc, char * argv[])
{
rclcpp::init(argc, argv);
rclcpp::executors::SingleThreadedExecutor exec;
rclcpp::NodeOptions options;

printf("hello world");

rclcpp::shutdown();
return 0;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
cmake_minimum_required(VERSION 3.5)
project(colcon_ros2_rlcpp_hello)

# Default to C++14
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
endif()

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()

find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(rclcpp_components REQUIRED)
find_package(std_msgs REQUIRED)

# This package installs libraries without exporting them.
# Export the library path to ensure that the installed libraries are available.
if(NOT WIN32)
ament_environment_hooks(
"${ament_cmake_package_templates_ENVIRONMENT_HOOK_LIBRARY_PATH}"
)
endif()

add_executable(colcon_ros2_rlcpp_hello src/hello.cpp)
target_link_libraries(colcon_ros2_rlcpp_hello)
ament_target_dependencies(colcon_ros2_rlcpp_hello rclcpp class_loader)

install(TARGETS
colcon_ros2_rlcpp_hello
DESTINATION lib/${PROJECT_NAME})

ament_package()
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format2.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>colcon_ros2_rlcpp_hello</name>
<version>0.0.1</version>
<description>snapcraft test for rlcpp</description>
<maintainer email="[email protected]">me</maintainer>
<license>Apache License 2.0</license>

<buildtool_depend>ament_cmake</buildtool_depend>

<build_depend condition="$ROS_VERSION == 2">rclcpp</build_depend>
<build_depend>rclcpp_components</build_depend>
<build_depend>std_msgs</build_depend>
<build_depend condition="$ROS_VERSION == 1">fake_package_that_does_not_exists</build_depend>

<exec_depend condition="$ROS_VERSION == 2">rclcpp</exec_depend>
<exec_depend>rclcpp_components</exec_depend>
<exec_depend>std_msgs</exec_depend>

<export>
<build_type>ament_cmake</build_type>
</export>
</package>
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: colcon-ros2-wrapper
version: "1.0"
summary: hello world
description: |
A ROS2 rlcpp-based workspace.

grade: stable
confinement: strict
base: core24

apps:
colcon-ros2-wrapper:
command: ros2 run colcon_ros2_rlcpp_hello colcon_ros2_rlcpp_hello
plugs: [network, network-bind]
extensions: [ros2-jazzy]

parts:
hello:
plugin: colcon
source: .
build-packages: [g++, make, vim]
stage-packages: [ros-jazzy-ros2run]
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Copyright 2016 Open Source Robotics Foundation, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#include <memory>
#include "rclcpp/rclcpp.hpp"

int main(int argc, char * argv[])
{
rclcpp::init(argc, argv);
rclcpp::executors::SingleThreadedExecutor exec;
rclcpp::NodeOptions options;

printf("hello world");

rclcpp::shutdown();
return 0;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env ipython3

print('hello world')

Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: conda-hello
version: '1.0'
summary: Hello world using ipython from conda packages
description: |
Leverage conda-packages to install ipython and use it to say "hello world".

grade: devel
base: core24
confinement: strict

apps:
conda-hello:
command:
hello

parts:
ipython:
plugin: conda
conda-miniconda-version: "py39_4.12.0"
conda-packages:
- ipython
conda-python-version: "3.9"
hello:
plugin: dump
source: .
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# flutter_hello

A new Flutter project.

## Getting Started

This project is a starting point for a Flutter application.

A few resources to get you started if this is your first Flutter project:

- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)

For help getting started with Flutter development, view the
[online documentation](https://docs.flutter.dev/), which offers tutorials,
samples, guidance on mobile development, and a full API reference.
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# This file configures the analyzer, which statically analyzes Dart code to
# check for errors, warnings, and lints.
#
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
# invoked from the command line by running `flutter analyze`.

# The following line activates a set of recommended lints for Flutter apps,
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml

linter:
# The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
# included above or to enable additional rules. A list of all available lints
# and their documentation is published at
# https://dart-lang.github.io/linter/lints/index.html.
#
# Instead of disabling a lint rule for the entire project in the
# section below, it can also be suppressed for a single line of code
# or a specific dart file by using the `// ignore: name_of_lint` and
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
# producing the lint.
rules:
# avoid_print: false # Uncomment to disable the `avoid_print` rule
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule

# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/lib" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/.idea" />
<excludeFolder url="file://$MODULE_DIR$/.pub" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Dart SDK" level="project" />
<orderEntry type="library" name="Flutter Plugins" level="project" />
<orderEntry type="library" name="Dart Packages" level="project" />
</component>
</module>
Loading
Loading