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
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.
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
Our policy for the communication test is published on this (but only in Japanese,,, :_(