Skip to content

rclex/rclex_connection_tests

Repository files navigation

rclex_connection_tests

This repository provides test scripts for Rclex, that is a ROS 2 client library for Elixir. We can check whether communication with the node implemented by Rclcpp normally.

Since it is assumed to be used for testing during the development of Rclex and operating CI on GitHub Actions, the repository of Rclex needs to be cloned to the local and and placed in parallel with this repository.

Place the directories of the two repositories as shown below.

$ cd /path/to/yours
$ git clone https://github.com/rclex/rclex
$ git clone https://github.com/rclex/rclex_connection_tests
$ ls
rclex  rclex_connection_tests

Usage

on the native environment

In an environment with ROS 2 and Elixir/Erlang installed, just execute run-all.sh.

$ cd /path/to/yours/rclex_connection_tests
$ ./run-all.sh

./run-rebuild.sh only performs clean build of nodes for the communication test. You can also specify a separate build for each with the rclcpp or rclex options.

./run-test.sh only runs the communication test. You can also specify the target test scripts with any number of arguments.

when using Docker

In an environment where Docker can be used, the test can also be operated with the image published on Docker Hub as the follow.

$ cd /path/to/yours/rclex_connection_tests
$ ./test_in_docker.sh

You can also specify the target tags of Docker image with any number of arguments (e.g., latest, foxy-ex1.12.3-otp24.1.5). Please check available Docker tags in this list.

If you want to operate the test process step by step, the following instruction may be useful.

$ cd /path/to/yours/rclex_connection_tests
$ export TAG=latest    # or another tag as the target
$ docker compose pull
$ docker compose up -d
$ docker compose exec rclex_docker bash
### Enter the container
# cd ~/rclex_connection_tests
# source /opt/ros/${ROS_DISTRO}/setup.bash
# ./run-rebuild.bash
# ./run-test.bash

Details

Our policy for the communication test is published on this (but only in Japanese,,, :_(