osrf/ros2_test_cases

ros2cli on a local machine

Closed this issue · 1 comments

Test the basic functionality of the ros2cli package family

Configuration

  • OS: Windows
  • Chip set: AMD64
  • DDS: CycloneDDS
  • Build type: Binary

Links

Process

Step 1 - Help text

Long-form help text should be available when invoking ros2 --help as well as ros2 <command> --help

Actions

# StdIn - terminal 1
ros2 -h
# StdIn - terminal 1
ros2 --help
# StdIn - terminal 1
ros2 topic -h
# StdIn - terminal 1
ros2 topic --help

Expected Result

Long-form help is available.

Step 2 - Tab completion

When using a supported shell (i.e. bash), tab completion should work for both the bare executable to list commands and for listing sub-commands, like ros2 <tab> or ros2 <command> tab

Actions

Lists the commands

# StdIn - terminal 1
ros2 <tab><tab>

Completes the word launch

# StdIn - terminal 1
ros2 lau<tab>

Completes until demo_nodes_

# StdIn - terminal 1
ros2 launch dem<tab>

Completes the package demo_nodes_cpp

# StdIn - terminal 1
ros2 launch demo_nodes_c<tab>

Lists launch files in demo_nodes_cpp

# StdIn - terminal 1
ros2 launch demo_nodes_cpp <tab><tab>

Suggests the launch files name talker_listener

# StdIn - terminal 1
ros2 launch demo_nodes_cpp ta<tab>

Lists several launch files that start with talker_listener

# StdIn - terminal 1
ros2 launch demo_nodes_cpp talker_listener<tab><tab>

Completes the launch files name talker_listener_launch.py

# StdIn - terminal 1
ros2 launch demo_nodes_cpp talker_listener_launch.p<tab>

Expected Results

You eventually get to the full command

Stdin: "ros2 launch demo_nodes_cpp talker_listener_launch.py"

Step 3 - Node discovery

With another node running, use ros2 node list to ensure that the expected node is listed. Then stop the node and ensure that the list operation no longer shows the node.

Actions

# StdIn - terminal 1
ros2 launch demo_nodes_cpp talker_listener_launch.py
# StdIn - terminal 2
ros2 node list

Expected Result

# StdOut - terminal 2
/listener
/talker

Step 4 - Topic discovery

With another node running, use ros2 topic list to ensure that the expected topics are listed. Then stop the node and ensure that the list operation no longer shows the node's topics.

Actions

# StdIn - terminal 1
ros2 launch demo_nodes_cpp talker_listener_launch.py
# StdIn - terminal 2
ros2 topic list

Expected Result

# StdOut - terminal 2
/chatter
/parameter_events
/rosout

Step 5 - Service discovery

With another node running, use ros2 service list to ensure that the expected services are listed. Then stop the node and ensure that the list operation no longer shows the node's services.

Actions

# StdIn - terminal 1
ros2 run demo_nodes_cpp add_two_ints_server
# StdIn - terminal 2
ros2 service list

Expected Result

# StdOut - terminal 2
/add_two_ints
/add_two_ints_server/describe_parameters
/add_two_ints_server/get_parameter_types
/add_two_ints_server/get_parameters
/add_two_ints_server/list_parameters
/add_two_ints_server/set_parameters
/add_two_ints_server/set_parameters_atomically

Step 6 - Parameter discovery

With another node running, use ros2 param list to ensure that the expected parameters are listed. Then stop the node and ensure that the list operation no longer shows the node's parameters.

Actions

# StdIn - terminal 1
ros2 run turtlesim turtlesim_node
# StdIn - terminal 2
ros2 param list

Expected Result

# StdOut - terminal 2
/turtlesim:
  background_b
  background_g
  background_r
  holonomic
  qos_overrides./parameter_events.publisher.depth
  qos_overrides./parameter_events.publisher.durability
  qos_overrides./parameter_events.publisher.history
  qos_overrides./parameter_events.publisher.reliability
  use_sim_time

Setup

Installation Changes

  1. openssl v1.1.1 - downloaded through choco
   PLATFORM INFORMATION
system           : Windows
platform info    : Windows-10-10.0.19041-SP0
release          : 10
processor        : Intel64 Family 6 Model 154 Stepping 4, GenuineIntel

   QOS COMPATIBILITY LIST
compatibility status    : No publisher/subscriber pairs found

   RMW MIDDLEWARE
middleware name    : rmw_cyclonedds_cpp

   ROS 2 INFORMATION
distribution name      : jazzy
distribution type      : ros2
distribution status    : pre-release
release platforms      : {'debian': ['bookworm'], 'rhel': ['9'], 'ubuntu': ['noble']}

Result

Except Step 2 - Tab completion other checks are working as expected. Tab completion currently does not work with windows. So, this test has passed.