Skip to content

Commit e9279c9

Browse files
ipa-rwuipa-nhg
authored andcommitted
Implement and adapt RosSystem tests for the new attribute ComponentStacks
1 parent e4f53e6 commit e9279c9

15 files changed

Lines changed: 328 additions & 29 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
RosSystem { Name 'test_stacks'
2+
RosComponentStacks (
3+
ComponentStack {
4+
name stack1
5+
RosComponents (
6+
ComponentInterface { name test_node
7+
FromRosNode "test_pkg.test_node.test_node"
8+
RosPublishers{ RosPublisher "scan" { RefPublisher "test_pkg.test_node.test_node.scan"} }
9+
RosSubscribers{ RosSubscriber "power_state" { RefSubscriber "test_pkg.test_node.test_node.power_state"} }
10+
RosSrvServers{ RosServiceServer "setBool" { RefServer "test_pkg.test_node.test_node.setBool"} }
11+
RosSrvClients{ RosServiceClient "init" { RefClient "test_pkg.test_node.test_node.init"} }
12+
RosParameters{ RosParameter "string_test" { RefParameter "test_pkg.test_node.test_node.string_test"},
13+
RosParameter "bool_tets" { RefParameter "test_pkg.test_node.test_node.bool_tets"},
14+
RosParameter "array_tets" { RefParameter "test_pkg.test_node.test_node.array_tets"},
15+
RosParameter "base64_test" { RefParameter "test_pkg.test_node.test_node.base64_test"},
16+
RosParameter "double_test" { RefParameter "test_pkg.test_node.test_node.double_test"},
17+
RosParameter "int_test" { RefParameter "test_pkg.test_node.test_node.int_test"},
18+
RosParameter "list_test" { RefParameter "test_pkg.test_node.test_node.list_test"}}},
19+
ComponentInterface { name test_node2 NameSpace test2
20+
FromRosNode "test_pkg.test_node.test_node"
21+
RosPublishers { RosPublisher "scan" { RefPublisher "test_pkg.test_node.test_node.scan" } }
22+
RosSubscribers { RosSubscriber "power_state" { RefSubscriber "test_pkg.test_node.test_node.power_state" } }
23+
RosSrvServers { RosServiceServer "setBool" { RefServer "test_pkg.test_node.test_node.setBool" } }
24+
RosSrvClients { RosServiceClient "init" { RefClient "test_pkg.test_node.test_node.init" } }
25+
RosParameters { RosParameter "string_test" { RefParameter "test_pkg.test_node.test_node.string_test" } ,
26+
RosParameter "bool_tets" { RefParameter "test_pkg.test_node.test_node.bool_tets" } ,
27+
RosParameter "array_tets" { RefParameter "test_pkg.test_node.test_node.array_tets" } ,
28+
RosParameter "base64_test" { RefParameter "test_pkg.test_node.test_node.base64_test" } ,
29+
RosParameter "double_test" { RefParameter "test_pkg.test_node.test_node.double_test" } ,
30+
RosParameter "int_test" { RefParameter "test_pkg.test_node.test_node.int_test" } ,
31+
RosParameter "list_test" { RefParameter "test_pkg.test_node.test_node.list_test" }}})},
32+
ComponentStack {
33+
name stack2
34+
RosComponents (
35+
ComponentInterface { name test_nodea
36+
RosPublishers { RosPublisher power_state { RefPublisher "test_pkg.test_node.test_node.power_state" } }
37+
RosSubscribers { RosSubscriber scan { RefSubscriber "test_pkg.test_node.test_node.scan" } }
38+
RosSrvServers { RosServiceServer init { RefServer "test_pkg.test_node.test_node.init" } }
39+
RosSrvClients { RosServiceClient SetBool { RefClient "test_pkg.test_node.test_node.SetBool" }}}
40+
)
41+
}
42+
)
43+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
version: "3.3"
2+
networks:
3+
ros:
4+
driver: bridge
5+
6+
services:
7+
ros-master:
8+
image: ros:melodic-ros-core
9+
command: stdbuf -o L roscore
10+
networks:
11+
- ros
12+
13+
test_stacks_stack1:
14+
image: "test_stacks_stack1:latest"
15+
depends_on:
16+
- ros-master
17+
environment:
18+
- "ROS_MASTER_URI=http://ros-master:11311"
19+
- "ROS_HOSTNAME=stack1"
20+
networks:
21+
- ros
22+
command: stdbuf -o L roslaunch test_stacks_stack1 stack1.launch --wait
23+
24+
test_stacks_stack2:
25+
image: "test_stacks_stack2:latest"
26+
depends_on:
27+
- ros-master
28+
environment:
29+
- "ROS_MASTER_URI=http://ros-master:11311"
30+
- "ROS_HOSTNAME=stack2"
31+
networks:
32+
- ros
33+
command: stdbuf -o L roslaunch test_stacks_stack2 stack2.launch --wait
34+
35+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
cmake_minimum_required(VERSION 2.8.3)
2+
project(test_stacks_stack1)
3+
4+
find_package(catkin REQUIRED)
5+
6+
catkin_package()
7+
8+
9+
### INSTALL ###
10+
install(DIRECTORY launch
11+
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
12+
)
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# syntax=docker/dockerfile:experimental
2+
ARG SUFFIX=
3+
ARG PREFIX=
4+
FROM ros:melodic-ros-core as base
5+
FROM ${PREFIX}builder${SUFFIX} as builder
6+
7+
FROM base as build
8+
COPY . /root/ws/src/test_stacks_stack1/
9+
RUN --mount=type=bind,from=builder,target=/builder \
10+
apt-get update -qq && \
11+
/builder/workspace.bash build_workspace /root/ws && \
12+
rm -rf /var/lib/apt/lists/*
13+
14+
FROM build as test
15+
RUN --mount=type=bind,from=builder,target=/builder \
16+
apt-get update -qq && \
17+
/builder/workspace.bash test_workspace /root/ws && \
18+
rm -rf /var/lib/apt/lists/*
19+
20+
FROM build as install
21+
RUN --mount=type=bind,from=builder,target=/builder \
22+
apt-get update -qq && \
23+
/builder/workspace.bash install_workspace /root/ws && \
24+
rm -rf /var/lib/apt/lists/*
25+
26+
FROM install as full
27+
RUN --mount=type=bind,from=builder,target=/builder \
28+
apt-get update -qq && \
29+
/builder/workspace.bash install_depends /root/ws && \
30+
rm -rf /var/lib/apt/lists/*
31+
32+
FROM base as deploy
33+
RUN --mount=type=bind,from=builder,target=/builder --mount=type=bind,target=/root/ws,from=install,source=/root/ws \
34+
apt-get update -qq && \
35+
/builder/workspace.bash install_depends /root/ws && \
36+
rm -rf /var/lib/apt/lists/*
37+
COPY --from=install /opt/ros/$ROS_DISTRO /opt/ros/$ROS_DISTRO
38+
39+
FROM deploy as launch
40+
CMD ["roslaunch", "test_stacks_stack1", "stack1.launch"]
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0"?>
2+
<launch>
3+
4+
<node pkg="test_pkg" type="test_node" name="test_node" cwd="node" respawn="false" output="screen">
5+
</node>
6+
<node pkg="test_pkg" type="test_node" name="test_node2" ns="test2" cwd="node" respawn="false" output="screen">
7+
</node>
8+
9+
</launch>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<package format="2">
2+
<name>test_stacks_stack1</name>
3+
<version>0.0.1</version>
4+
<description>This package provides launch file for operating test_stacks_stack1</description>
5+
6+
<license>Apache 2.0</license>
7+
8+
<url type="website">http://wiki.ros.org/</url>
9+
10+
11+
<maintainer email="jane.doe@example.com">Jane Doe</maintainer>
12+
<author email="jane.doe@example.com">Jane Doe</author>
13+
14+
<buildtool_depend>catkin</buildtool_depend>
15+
<exec_depend>test_pkg</exec_depend>
16+
<!--test_depend>roslaunch</test_depend-->
17+
18+
</package>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
cmake_minimum_required(VERSION 2.8.3)
2+
project(test_stacks_stack2)
3+
4+
find_package(catkin REQUIRED)
5+
6+
catkin_package()
7+
8+
9+
### INSTALL ###
10+
install(DIRECTORY launch
11+
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
12+
)
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# syntax=docker/dockerfile:experimental
2+
ARG SUFFIX=
3+
ARG PREFIX=
4+
FROM ros:melodic-ros-core as base
5+
FROM ${PREFIX}builder${SUFFIX} as builder
6+
7+
FROM base as build
8+
COPY . /root/ws/src/test_stacks_stack2/
9+
RUN --mount=type=bind,from=builder,target=/builder \
10+
apt-get update -qq && \
11+
/builder/workspace.bash build_workspace /root/ws && \
12+
rm -rf /var/lib/apt/lists/*
13+
14+
FROM build as test
15+
RUN --mount=type=bind,from=builder,target=/builder \
16+
apt-get update -qq && \
17+
/builder/workspace.bash test_workspace /root/ws && \
18+
rm -rf /var/lib/apt/lists/*
19+
20+
FROM build as install
21+
RUN --mount=type=bind,from=builder,target=/builder \
22+
apt-get update -qq && \
23+
/builder/workspace.bash install_workspace /root/ws && \
24+
rm -rf /var/lib/apt/lists/*
25+
26+
FROM install as full
27+
RUN --mount=type=bind,from=builder,target=/builder \
28+
apt-get update -qq && \
29+
/builder/workspace.bash install_depends /root/ws && \
30+
rm -rf /var/lib/apt/lists/*
31+
32+
FROM base as deploy
33+
RUN --mount=type=bind,from=builder,target=/builder --mount=type=bind,target=/root/ws,from=install,source=/root/ws \
34+
apt-get update -qq && \
35+
/builder/workspace.bash install_depends /root/ws && \
36+
rm -rf /var/lib/apt/lists/*
37+
COPY --from=install /opt/ros/$ROS_DISTRO /opt/ros/$ROS_DISTRO
38+
39+
FROM deploy as launch
40+
CMD ["roslaunch", "test_stacks_stack2", "stack2.launch"]
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0"?>
2+
<launch>
3+
4+
<node pkg="test_pkg" type="test_node" name="test_nodea" cwd="node" respawn="false" output="screen">
5+
</node>
6+
7+
</launch>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<package format="2">
2+
<name>test_stacks_stack2</name>
3+
<version>0.0.1</version>
4+
<description>This package provides launch file for operating test_stacks_stack2</description>
5+
6+
<license>Apache 2.0</license>
7+
8+
<url type="website">http://wiki.ros.org/</url>
9+
10+
11+
<maintainer email="jane.doe@example.com">Jane Doe</maintainer>
12+
<author email="jane.doe@example.com">Jane Doe</author>
13+
14+
<buildtool_depend>catkin</buildtool_depend>
15+
<exec_depend>test_pkg</exec_depend>
16+
<!--test_depend>roslaunch</test_depend-->
17+
18+
</package>

0 commit comments

Comments
 (0)