Commit graph

30 commits

Author SHA1 Message Date
Dan Rose
17da91409a
Fix and simplify building docs and schemas (#441)
Fix and simplify building docs and schemas

1. Do an in-source build of derived schemas instead of building into build and checking that the files match.
2. Fix paths of installed docs, which were failing on me
3. Consolidate docs into same cmakelists that generates schema files
4. Trang is usually available as an executable, so find it with find_program.
5. Add doc dependencies to package.xml

Signed-off-by: Dan Rose <dan@digilabs.io>
2020-04-02 17:25:16 +02:00
Erik Boasson
8d6b308199 Add more checks to ddsperf and run on Travis
This adds options to check for "unreasonable" RSS growth, receipt of a
minimum number of samples and having run a minimum number of roundtrips.

Signed-off-by: Erik Boasson <eb@ilities.com>
2020-02-12 17:19:48 +01:00
Erik Boasson
4af531a1c3 Add a test for duration 0ns and 1ns manual lease
Signed-off-by: Erik Boasson <eb@ilities.com>
2020-01-20 10:27:56 +01:00
Dennis Potman
231cb8c9f7 Deadline Missed QoS implementation
This commit contains the implementation of the deadline QoS
for readers and writers. The description of this QoS in
the DDS specification (section 2.2.3.7):

"This policy is useful for cases where a Topic is expected to
have each instance updated periodically. On the publishing side this
setting establishes a contract that the application must meet.
On the subscribing side the setting establishes a minimum
requirement for the remote publishers that are expected to supply
the data values."

On the writer side, the deadline missed event also needs to trigger in
case only local readers exist. The implementation for this inserts
the sample in the writer history cache temporary, so that an instance
is created in the whc. Immediately after inserting the sample, it is
removed again. With the creation of the instance, the deadline missed event
is created, which will take care of triggering the deadline missed
callback if required. In case the instance already existed, the timer
of the event is renewed.

To verify the changes to the writer history cache, add an additional
test to check the write history cache state. This test checks the state
of the whc after writing samples by a writer with specific combinations
of qos settings. The state of the whc is checked for stored
samples (min/max sequence number) and the absence of unacked data, after
writing samples and wait for acks by the local and/or remote
readers (which is also a parameter for this test). This test is
introduced as part of the deadline implementation, but its scope is
wider than only the changes that were made in the whc implementation for
the deadline qos.

This test showed that even before the deadline support was added,
whc_default_remove_acked_messages_full data was not marked as acked in
case of transient-local keep-all. This resulted in data in whc that
never gets in acked state. This has been fixed as well.

Signed-off-by: Dennis Potman <dennis.potman@adlinktech.com>
2020-01-17 14:35:07 +01:00
Dennis Potman
01dc6ebce8 Disable lifespan qos support in one of the linux_gcc8 Travis builds
Signed-off-by: Dennis Potman <dennis.potman@adlinktech.com>
2019-12-17 13:02:28 +01:00
Erik Boasson
e43bdb73c7 Fix install dir of CycloneDDSConfig.cmake (#321)
Installing Cyclone DDS for multiple architectures with the same
installation prefix gave problems because the CMake configuration files
ended up overwriting each other.  This brings it in line with the
recommended locations.  Thanks to @hansfn.

Signed-off-by: Erik Boasson <eb@ilities.com>
2019-11-18 14:21:10 +01:00
Erik Boasson
b9e5e8cd7d Xcode 11.1 for macOS 10.12 build, Xcode 9 via cron
The Xcode 9 builds often fail because of some nasty interaction between
it and the Travis build cache -- but not caching means they always take
forever because of homebrew updates.  This commit changes the build to
use a new Xcode but with a deployment target of 10.12 instead.

This means that macOS version macros for versions later than 10.12 are
available and that the tests run on a later version of macOS as well.
Therefore, it doesn't prove that a "real" Xcode 9 / macOS 10.12 build
will work.

ROS2 relies on macOS 10.12 so this introduces a (small) risk of build
failures over there.  To mitigate that, a pure Xcode 9 build is included
in the cron job.

Signed-off-by: Erik Boasson <eb@ilities.com>
2019-11-06 14:17:40 +01:00
Erik Boasson
3652fe6330 Update to Xcode 11.1 image on Travis CI
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-11-06 14:17:40 +01:00
Martin Bremmer
41d36d59b2 Removed duplicate build from travis
Signed-off-by: Martin Bremmer <martin.bremmer@adlinktech.com>
2019-10-22 20:28:34 +02:00
Dan Rose
418a70e7c3 Fix CI not finding pip3
Signed-off-by: Dan Rose <dan@digilabs.io>
2019-10-20 03:32:18 -07:00
Jeroen Koekkoek
378b4b19d7 Add macOS 10.12 / Xcode 9 build on Travis CI
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2019-10-02 14:17:38 +02:00
Erik Boasson
282ab69441 Update Travis to XCode 10.3 image
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-09-25 10:46:40 +02:00
Erik Boasson
ac2eee3907 Skip the statistical tests on the random generator
Those fail with a small probability, but it is still annoying.  The code
has been vetted and tested; and by disabling the test only when run in
the CI infrastructure, anyone changing the code would still have the
test run locally.

Signed-off-by: Erik Boasson <eb@ilities.com>
2019-09-11 10:06:24 +02:00
Jeroen Koekkoek
b421e1039f Fix submission to Coverity Scan
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2019-08-28 07:20:33 +02:00
Erik Boasson
6f33dc0e6d CI tests: log DDSI configuration to stderr
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-08-21 14:16:51 +02:00
Erik Boasson
891fc2b12f Support multiple domains in configuration
Change the structure of the configuration file (in a backwards
compatible manner) to allow specifying configurations for multiple
domains in a file.  (Listing multiple files in CYCLONEDDS_URI was
already supported.)  A configuration specifies an id, with a default of
any, configurations for an incompatible id are ignored.

If the application specifies an id other than DDS_DOMAIN_DEFAULT in the
call to create_participant, then only configuration specifications for
Domain elements with that id or with id "any" will be used.  If the
application does specify DDS_DOMAIN_DEFAULT, then the id will be taken
from the first Domain element that specifies an id.  If none do, the
domain id defaults to 0.  Each applicable domain specification is taken
as a separate source and may override settings made previously.

All settings moved from the top-level CycloneDDS element to the
CycloneDDS/Domain element.  The CycloneDDS/Domain/Id element moved to
become the "id" attribute of CycloneDDS/Domain.  The old locations still
work, with appropriate deprecation warnings.

Signed-off-by: Erik Boasson <eb@ilities.com>
2019-08-21 14:16:51 +02:00
Erik Boasson
70a342991f Build no-SSL version on CI as well
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-08-21 14:16:51 +02:00
Erik Boasson
ca04ac48de Parallelize builds & tests
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-08-06 08:32:14 +02:00
Erik Boasson
9cf4b97f1a Reorganize repository
* Move the project top-level CMakeLists.txt to the root of the project;
  this allows building Cyclone as part of ROS2 without any special
  tricks;

* Clean up the build options:

  ENABLE_SSL:    whether to check for and include OpenSSL support if a
                 library can be found (default = ON); this used to be
                 called DDSC_ENABLE_OPENSSL, the old name is deprecated
                 but still works
  BUILD_DOCS:    whether to build docs (default = OFF)
  BUILD_TESTING: whether to build test (default = OFF)

* Collect all documentation into top-level "docs" directory;

* Move the examples to the top-level directory;

* Remove the unused and somewhat misleading pseudo-default
  cyclonedds.xml;

* Remove unused cmake files

Signed-off-by: Erik Boasson <eb@ilities.com>
2019-07-30 10:52:44 +02:00
Erik Boasson
95ea8fbf32 Update Travis to use xcode 10.2
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-06-21 01:15:20 +08:00
Erik Boasson
f6fc1751e9 Treat warnings as errors in CI builds
The CMake files now add "-Werror"/"/WX" if the "WERROR" CMake variable
is true.  By default it is not; the CI builds set this.

Signed-off-by: Erik Boasson <eb@ilities.com>
2019-06-13 12:54:35 +02:00
Jeroen Koekkoek
e3428ad1d8 Add Coverity Scan target to .travis.yml
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2019-05-24 07:42:48 +02:00
Jeroen Koekkoek
0b106cc186 Remove JAVA_HOME regarding registry from .travis.yml
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2019-04-18 19:28:46 +02:00
Jeroen Koekkoek
4a60000e58 Remove dependency on jdk8 Chocolatey package
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2019-04-18 19:28:46 +02:00
Erik Boasson
3faf5f45f6 enable expensive checks in CI builds
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-03-23 15:40:29 +01:00
Jeroen Koekkoek
58a8dfd5c5 Add support for Travis CI Windows builds
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2019-02-18 14:14:24 +01:00
Erik Boasson
9e63fe404f update Travis-CI build configuration
Getting cmake to work with/without conan on macOS, Linux and Windows
seems to be trickier than it should be when dealing with older cmake
versions. Switching to an Ubuntu Xenial image on Travis CI at least
makes it build again.

The update then also eliminates the need to update cmake, clang and
maven, saving quite a bit of build time. A few small tweaks and an
update to the macOS image version reduces some 5 minutes from the macOS
build time.

The minimum required version for cmake needs to be updated, too, but
really only when openssl support is included. So instead of raising the
required version in the CMakeFile I am in favour of simply hoping for
the best.

Signed-off-by: Erik Boasson <eb@ilities.com>
2019-02-04 11:54:13 +01:00
Erik Boasson
29f0ef6e17 Fix "make install" on Unix and add tests for it to CI scripts
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-01-18 15:41:19 +01:00
Jeroen Koekkoek
74a48c5731 Replace Criterion by CUnit
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2018-12-06 14:48:30 +01:00
Jeroen Koekkoek
2374cd9f3c add support for automated Linux and macOS builds with Travis CI
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2018-08-06 15:09:51 +02:00