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

Testing xenial build on Travis (DO NOT MERGE) #279

Closed
wants to merge 333 commits into from

Conversation

francisco-miguel-almeida
Copy link
Contributor

PR for testing xenial build on Travis. Once we have the .yml correct, we can cherry pick .travis.yml to master and both release branches.

meyerj and others added 30 commits December 21, 2015 22:47
The previous implementation based on std::rand() used time() to seed the random number generator
on every call. If multiple connections are generated within the same second, they can end up with
the same ID. UUIDs according to IETF RFC 4122 have a very high probably to be unique.

Signed-off-by: Johannes Meyer <[email protected]>
The buffer_policy field will be composed from and decomposed to int because CPFMarshaller
cannot handle enum BufferPolicy as a primitive type.

Signed-off-by: Johannes Meyer <[email protected]>
Moved portqueue from class TaskContext to the ExecutionEngine

Reviewed and this is the desired behavior.
…-queue' into toolchain-2.9

Conflicts:
	tests/ports_test.cpp
This line was missing from commit d9ff6ab.
For details, see #91.

Signed-off-by: Johannes Meyer <[email protected]>
…dataflow_performance_test

For the case the user running the tests has no permissions to use the RT scheduler, the test should not
fail completely. However, quantitative results may depend largely on system load.

The test runner on Travis failed because of this issue, e.g.
https://travis-ci.org/orocos-toolchain/rtt/builds/105478386.

Signed-off-by: Johannes Meyer <[email protected]>
This reverts commit 49fe051.

The original implementation of #109 required #91 (more verbose ActivityInterface
and RunnableInterface), which was not yet merged into master at that time. This commit
reverts the original commit which adapted the PR to be compatible with master.

Signed-off-by: Johannes Meyer <[email protected]>
… without a runner

...and extended the task test to cover this bug and to test non-periodic activities.

Signed-off-by: Johannes Meyer <[email protected]>
Call step() from Activity::loop() for the non-periodic case without a runner
If entry is not done yet, SM would immediately transition to next state instead of
finishing entry program.

- An event during entry will fail if entry could not be executed atomically (in a single SM step() ).
- We're now transitioning to the other state while processing the event callback in eventTransition() ( stepping=false)

Unit tests:
- Don't read same variable in the global event transitions as in local state transitions, which queries the port and fills it in (see testStateEvents ).
- The testStateOperationSignalGuard is not fixed yet, it receives the last event value instead of the first, while
  both events do arrive in the event queue. It appears that though the callbacks are asyn processed, the datasource is
  already written in both cases, so the first callback executed already sees the value of the second invocation of 'mo'.

Signed-off-by: Peter Soetens <[email protected]>

Conflicts:
	rtt/scripting/StateMachine.cpp
	tests/state_test.cpp
…nstructor to ready() member function

... so that it can be reused in corba_ipc_server without having initialized the Boost Test framework.

This is a regression from 167076a.

Signed-off-by: Johannes Meyer <[email protected]>
…llingFromSlave test

This patch should have been included in the merge commit 7643669.

Signed-off-by: Johannes Meyer <[email protected]>
…tantiation

The loop that removed SendHandleAlias variables from the StateMachineService could have skipped the
second one for the case the first two variables are SendHandles.

Signed-off-by: Johannes Meyer <[email protected]>
Hamal Marino and others added 25 commits April 9, 2019 16:09
... that was introduced in 3b29823.

Signed-off-by: Johannes Meyer <[email protected]>
This section in rtt/CMakeLists.txt was forgotten to be removed in
079dbb3.

Signed-off-by: Johannes Meyer <[email protected]>
…stAffinity

The condition to execute that part was always evaluating to false because it compared
a scheduler type with a priority. The actual test case is invalid because even for a
real-time thread with the highest priority there is no guarantee that it executes at
least once between the start and stop call.

Signed-off-by: Johannes Meyer <[email protected]>
collectIfDone(...) was calling cimpl->collect(...) for the specializations with more than three arguments.
Also reordered template specializations in Collect.hpp.

Signed-off-by: Johannes Meyer <[email protected]>
refactor Thread*::getCpuAffinity() to avoid changing the vtable.
keep unused argument of ComponentLoader::unloadComponent(...).
…2.9 (#271)

* Update README
* Rename README to README.md
boost::serialization::array<T> has been renamed to array_wrapper<T> in Boost 1.61.
Its usage in RTT has been adapted in 8765918
with a follow-up in 0d83c90.
The respective header has been renamed to array_wrapper.hpp in Boost 1.64 and starting from 1.65 array.hpp includes
array_wrapper.hpp (boostorg/serialization@1d86261). But
for 1.64 compilation failed with the following errors:

rtt/internal/../types/carray.hpp:101:56: error: expected ‘)’ before ‘<’ token
             carray( boost::serialization::array_wrapper<T> const& orig)

rtt/internal/../types/carray.hpp:171:41: error: ‘array_wrapper’ is not a member of ‘boost::serialization’
             const carray<T>& operator=( boost::serialization::array_wrapper<OtherT> const& orig ) {
                                         ^
rtt/internal/../types/carray.hpp:171:83: error: expected primary-expression before ‘>’ token
             const carray<T>& operator=( boost::serialization::array_wrapper<OtherT> const& orig ) {
                                                                                   ^
rtt/internal/../types/carray.hpp:171:85: error: expected primary-expression before ‘const’
             const carray<T>& operator=( boost::serialization::array_wrapper<OtherT> const& orig ) {
                                                                                     ^
rtt/internal/../types/carray.hpp:171:97: error: declaration of ‘operator=’ as non-function
             const carray<T>& operator=( boost::serialization::array_wrapper<OtherT> const& orig ) {
                                                                                                 ^

Signed-off-by: Johannes Meyer <[email protected]>
It depends on "normal" timing and tends to fail on Travis CI.
See also 7edd7ed.

Signed-off-by: Johannes Meyer <[email protected]>
…aces from API documentation

Signed-off-by: Johannes Meyer <[email protected]>
…of the RTT cmake config

If the RTT cmake module is used more than once with different components and the REQUIRED argument was not
given during the first invocation, a second invocation with REQUIRED might trigger false errors because of
items added to MISSING_COMPONENTS earlier.

Also moved initialization of OROCOS-RTT_PLUGIN_PATH to the if(NOT OROCOS-RTT_FOUND) section to not readd
the same directories over and over again.

Signed-off-by: Johannes Meyer <[email protected]>
This fixes a regression from 75745d6: The ListLockFree instance
was instantiated with a maximum number of threads of 4, but the test case ran 5 workers and one additional
grower threads. The number of workers has now been reduced to 3 again, like before 75745d6.

The fixture class was actually not used for the last test cases. Only the `listlockfree` member, which has been moved
into the `testListLockFree()` test case.

This bug caused occassional build errors on Travis CI, e.g. https://travis-ci.org/orocos-toolchain/rtt/builds/518819992.

Signed-off-by: Johannes Meyer <[email protected]>
@meyerj
Copy link
Member

meyerj commented Apr 16, 2019

Please rebase this patch on master, and not on the toolchain-2.9.1 release candidate branch that we will never merge back into master anyway.

See also the related PR #195, which was an attempt to switch to containerized builds and also compile with different compilers. Unfortunately this build infrastructure has been (deprecated again in the meantime](https://docs.travis-ci.com/user/reference/trusty/#container-based-infrastructure).

I think the best option would be to follow-up in #195 and do the switch to xenial there.

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

Successfully merging this pull request may close these issues.

8 participants