ros-drivers / rosserial

A ROS client library for small, embedded devices, such as Arduino. See: http://wiki.ros.org/rosserial
519 stars 524 forks source link

End to end tests #65

Open mikepurvis opened 11 years ago

mikepurvis commented 11 years ago

Suggestion:

New rosserial_tests package, which contains a gtest executable and handful of rostest files. The gtest executable would be both a roscpp node and rosserial client in various configurations (pty, socket, etc).

The idea would be a baseline exercise of functionality, as well as potentially flood tests (for buffer overruns), correct handling of messages mangled in various ways, etc.

I'm happy to work on this.

PaulBouchier commented 11 years ago

I love it Mike! I've been thinking that we need exactly that - an automated test suite so we can accept contributions and have confidence that they don't break stuff. Contributions welcome.

Paul

On Fri, Sep 13, 2013 at 5:06 PM, mikepurvis notifications@github.comwrote:

Suggestion:

New rosserial_tests package, which contains a gtest executable and handful of rostest files. The gtest executable would be both a roscpp node and rosserial client in various configurations (pty, socket, etc).

The idea would be a baseline exercise of functionality, as well as potentially flood tests (for buffer overruns), correct handling of messages mangled in various ways, etc.

I'm happy to work on this.

— Reply to this email directly or view it on GitHubhttps://github.com/ros-drivers/rosserial/issues/65 .

mikepurvis commented 11 years ago

Yes, will be important to know about regressions, especially if there's serious effort put into tickets like #66 (just filed by me).

PaulBouchier commented 11 years ago

Here are some thoughts I've had on the topic:

mikepurvis commented 11 years ago

Please check out my beginnings of some work on this:

https://github.com/clearpathrobotics/rosserial/tree/hydro-devel/rosserial_test

@mikeferguson, you may be interested in this too. There's some magic which happens in the client library generator script, and in the test fixture, but the meat of it is understandable from the simple check of publish functionality:

https://github.com/clearpathrobotics/rosserial/blob/hydro-devel/rosserial_test/src/publish_subscribe.cpp