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

Write unit test using various types #42

Closed
gerkey opened this issue Apr 21, 2015 · 7 comments
Closed

Write unit test using various types #42

gerkey opened this issue Apr 21, 2015 · 7 comments
Assignees

Comments

@gerkey
Copy link
Member

gerkey commented Apr 21, 2015

Write unit tests ensuring correct transmission of data from publishers to subscribers, exercising all primitive types, static arrays, dynamic arrays, and some amount of nesting.

@gerkey gerkey added the ready Work is about to start (Kanban column) label Apr 21, 2015
@dirk-thomas dirk-thomas added in progress Actively being worked on (Kanban column) and removed ready Work is about to start (Kanban column) labels Apr 23, 2015
@dirk-thomas
Copy link
Member

  • Create binaries for:
    • publish / subscribe a message with no fields
    • publish / subscribe a message with fields for all primitive types
      • correct handling of default values should be tested in a lower-level unit test
    • request / reply a service with no fields
    • request / reply a service with fields for all primitive types (in both request and reply)
  • Create tests for:
    • publish / subscribe for each rmw implementation
    • publish / subscribe for between each combination of rmw implementations
    • request / reply for each rmw implementation
    • request / reply for between each combination of rmw implementations
      • across vendors is currently disabled since not supported yet

@dirk-thomas
Copy link
Member

Request / reply tests currently blocked by ros2/rclcpp#29.

@dirk-thomas
Copy link
Member

Currently the following tests pass:

  • publisher_subscriber_cpp__empty
    • rmw_connext_cpp__rmw_connext_dynamic_cpp
    • rmw_connext_cpp__rmw_opensplice_cpp
    • rmw_connext_cpp
    • rmw_connext_dynamic_cpp__rmw_connext_cpp
    • rmw_connext_dynamic_cpp__rmw_opensplice_cpp
    • rmw_connext_dynamic_cpp
    • rmw_opensplice_cpp__rmw_connext_cpp
    • rmw_opensplice_cpp__rmw_connext_dynamic_cpp
    • rmw_opensplice_cpp
  • publisher_subscriber_cpp__primitives
    • rmw_connext_cpp__rmw_connext_dynamic_cpp
    • rmw_connext_cpp__rmw_opensplice_cpp
    • rmw_connext_cpp
    • rmw_connext_dynamic_cpp__rmw_connext_cpp (workaround unbounded strings with dynamic data api rmw_connext#34)
    • rmw_connext_dynamic_cpp__rmw_opensplice_cpp
    • rmw_connext_dynamic_cpp
    • rmw_opensplice_cpp__rmw_connext_cpp
    • rmw_opensplice_cpp__rmw_connext_dynamic_cpp
    • rmw_opensplice_cpp
  • requester_replier_cpp__emptyservice
    • rmw_connext_cpp__rmw_connext_dynamic_cpp
    • rmw_connext_cpp
    • rmw_connext_dynamic_cpp__rmw_connext_cpp
    • rmw_connext_dynamic_cpp
    • rmw_opensplice_cpp
  • requester_replier_cpp__primitivesservice

Known limitations:

  • services don't work across vendors and are therefore not in the above list

@dirk-thomas
Copy link
Member

Since now all tests pass for empty / all primitives messages / services I will continue adding more types.

  • publish / subscribe a message with fields for static arrays of all primitive types
  • publish / subscribe a message with fields for dynamic arrays of all primitive types
    • correct handling of boundariesshould be tested in a lower-level unit test
  • publish / subscribe a message with nested types
  • publish / subscribe a message with fields for all builtin types

@dirk-thomas
Copy link
Member

Currently the following tests pass:

  • publisher_subscriber_cpp__staticarrayprimitives
    • rmw_connext_cpp__rmw_connext_dynamic_cpp
    • rmw_connext_cpp__rmw_opensplice_cpp
    • rmw_connext_cpp
    • rmw_connext_dynamic_cpp__rmw_connext_cpp
    • rmw_connext_dynamic_cpp__rmw_opensplice_cpp
    • rmw_connext_dynamic_cpp
    • rmw_opensplice_cpp__rmw_connext_cpp
    • rmw_opensplice_cpp__rmw_connext_dynamic_cpp
    • rmw_opensplice_cpp
  • publisher_subscriber_cpp__dynamicarrayprimitives
    • rmw_connext_cpp__rmw_connext_dynamic_cpp
    • rmw_connext_cpp__rmw_opensplice_cpp
    • rmw_connext_cpp
    • rmw_connext_dynamic_cpp__rmw_connext_cpp
    • rmw_connext_dynamic_cpp__rmw_opensplice_cpp
    • rmw_connext_dynamic_cpp
    • rmw_opensplice_cpp__rmw_connext_cpp
    • rmw_opensplice_cpp__rmw_connext_dynamic_cpp
    • rmw_opensplice_cpp
  • publisher_subscriber_cpp__nested
    • rmw_connext_cpp__rmw_connext_dynamic_cpp
    • rmw_connext_cpp__rmw_opensplice_cpp
    • rmw_connext_cpp
    • rmw_connext_dynamic_cpp__rmw_connext_cpp
    • rmw_connext_dynamic_cpp__rmw_opensplice_cpp
    • rmw_connext_dynamic_cpp
    • rmw_opensplice_cpp__rmw_connext_cpp
    • rmw_opensplice_cpp__rmw_connext_dynamic_cpp
    • rmw_opensplice_cpp
  • publisher_subscriber_cpp__builtins
    • rmw_connext_cpp__rmw_connext_dynamic_cpp
    • rmw_connext_cpp__rmw_opensplice_cpp
    • rmw_connext_cpp
    • rmw_connext_dynamic_cpp__rmw_connext_cpp
    • rmw_connext_dynamic_cpp__rmw_opensplice_cpp
    • rmw_connext_dynamic_cpp
    • rmw_opensplice_cpp__rmw_connext_cpp
    • rmw_opensplice_cpp__rmw_connext_dynamic_cpp
    • rmw_opensplice_cpp

@dirk-thomas dirk-thomas changed the title Write unit test using primitive types Write unit test using various types May 22, 2015
@dirk-thomas dirk-thomas added in review Waiting for review (Kanban column) and removed in progress Actively being worked on (Kanban column) labels May 26, 2015
@dirk-thomas
Copy link
Member

This should finally cover all the above tests. If nobody has suggestions for further communication tests I would propose to close this.

@tfoote
Copy link
Contributor

tfoote commented May 26, 2015

looks complete

@esteve esteve closed this as completed May 26, 2015
@esteve esteve removed the in review Waiting for review (Kanban column) label May 26, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants