How To Validate Your Port of RTI Connext DDS
Congratulations! Using the RTI Connext Open Community Source, or licensing the RTI Connext buildable source code, you built RTI Connext DDS for your target platform. Building and linking is only the first part of course. This how-to lists a set of simple tests you can run to validate that the main functionality has been ported successfully.
Run a simple HelloWorld example
RTI Connext DDS includes various HelloWorld examples in different programming languages (under $NDDSHOME/example). Start by running a C or C++ example first. The first "Hands On" section of the RTI Connext DDS Getting Started Guide explains how to run an example.
Validate basic discovery and communication
Build and Run example/CPP/Hello_simple. This example does not make use of the rtiddsgen code generator.Validate the use of the IDL compiler and code generator
Build and Run example/CPP/Hello_idl.Validate important code paths
Configure the examples to use:- Reliable communication, or Best Effort
- Unicast, or Multicast (see the article Configure RTI Connext not to use multicast)
- Run the examples over different transports
- Run the HelloWorld examples on the same host (If your platform supports shared memory, RTI Connext DDS will use automatically the built-in and by default enabled Shared Memory transport.)
- Run the HelloWorld examples between two system (RTI Connext DDS will use the built-in and by default enabled UDPv4 transport).
Use PerfTest
PerfTest is a performance test application, created by RTI, and available from the RTI Community portal. It exercises a variety of features in order to achieve low latency and high throughput in various use cases. For example, to improve the throughput when sending small samples, PerfTest uses the batching feature. PerfTest is available in source and binary format. It has been ported to be used on Linux and Windows systems.
Run PerfTest using a combination of operation modes. Consult the PerfTest documentation for details on how to configure PerfTest: in reliable/best effort communication mode, using unicast/multicast, using batching/no-batching, with/without volatile durability, using various transport modes, using keys/no-keys, using listeners/waitsets.
Other tests
- Run various feature specific examples
Various feature specific examples are available in different languages from the RTI Community portal. - Use rtiddsgen with a variety of data types
The simple HelloWorld uses typically a simple type. To exercises various serialization and deserialization methods, and alignments, use rtiddsgen with a variety of different data types and structures. - Run additional transport tests
RTI Connext supports many more transports. These transports are either not installed by default, or are not enabled by default. Run HelloWorld with the UDPv6 transport. Run HelloWorld with the TCP transport. - Run HelloWorld examples in different programming languages.