Commit graph

33 commits

Author SHA1 Message Date
brawner
dd62d09042 Add fault injection macros and unit tests to rcl_lifecycle (#731)
* Add fault injection macros and unit tests to rcl_lifecycle

Signed-off-by: Stephen Brawner <brawner@gmail.com>

* Address feedback

Signed-off-by: Stephen Brawner <brawner@gmail.com>

* PR Fixup

Signed-off-by: Stephen Brawner <brawner@gmail.com>
2020-10-16 19:28:38 +02:00
brawner
34107decc9
Set transition_map->states/transition size to 0 on fini (#729) (#821)
Signed-off-by: Stephen Brawner <brawner@gmail.com>
2020-10-05 13:30:57 -07:00
Shane Loretz
055d7eba62
Topic fix rcl lifecycle test issue (#715) (#796)
* Fix missing call fini() for lifecycle_transition and node in test_rcl_lifecycle

Signed-off-by: Barry Xu <barry.xu@sony.com>

* Fix error overwritten while allocator is Nullptr.

Signed-off-by: Barry Xu <barry.xu@sony.com>

* Optimize used variables

Signed-off-by: Barry Xu <barry.xu@sony.com>
Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>

Co-authored-by: Barry Xu <barry.xu@sony.com>
2020-09-09 15:25:10 -07:00
Karsten Knese
0de31d0483
transition start and goal states can be null (#662)
* transition start and goal states can be null

Signed-off-by: Karsten Knese <karsten@openrobotics.org>

* correct tests

Signed-off-by: Karsten Knese <karsten@openrobotics.org>
2020-05-27 12:03:10 -07:00
brawner
7146919c3f
Increase rcl_lifecycle test coverage and add more safety checks (#649)
* Increase test coverage and add more safety checks

Signed-off-by: Stephen Brawner <brawner@gmail.com>

* More coverage

Signed-off-by: Stephen Brawner <brawner@gmail.com>

* Concatenating error messages

Signed-off-by: Stephen Brawner <stephenbrawner@verbsurgical.com>

* PR Fixup

Signed-off-by: Stephen Brawner <stephenbrawner@verbsurgical.com>

* Forgot a

Signed-off-by: Stephen Brawner <stephenbrawner@verbsurgical.com>

* PR Fixup

Signed-off-by: Stephen Brawner <stephenbrawner@verbsurgical.com>

* Moving var to top

Signed-off-by: Stephen Brawner <stephenbrawner@verbsurgical.com>

Co-authored-by: Stephen Brawner <stephenbrawner@verbsurgical.com>
2020-05-22 14:44:11 -07:00
Dirk Thomas
94b5a1d7d0
rename rosidl_generator_c namespace to rosidl_runtime_c (#616)
Signed-off-by: Dirk Thomas <dirk-thomas@users.noreply.github.com>
2020-04-10 21:58:19 -07:00
Víctor Mayoral Vilches
fbe299af7f free valid_transitions for all states (#537)
* free valid_transitions for all states

transition_map->states[i].valid_transitions wasn't being release which was
leaking about 800 bytes per instantiation.

See https://github.com/aliasrobotics/RVD/issues/333

Signed-off-by: Víctor Mayoral Vilches <v.mayoralv@gmail.com>

* Fixups.

Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
2019-11-25 07:50:11 -05:00
Dirk Thomas
a9af082d9e
reset error message before setting a new one, embed the original one (#501)
* reset error message before setting a new one, embed the original one

Signed-off-by: Dirk Thomas <dirk-thomas@users.noreply.github.com>

* fix max line length

Signed-off-by: Dirk Thomas <dirk-thomas@users.noreply.github.com>
2019-09-17 08:54:33 -07:00
Michael Carroll
3d48555597
Rmw preallocate (#428)
* Proposola of changes for RMW_Preallocate. Related /ros2/rmw#160

Signed-off-by: Gonzalo de Pedro <gonzalo@depedro.com.ar>

* Changed RCL interface

Signed-off-by: Gonzalo de Pedro <gonzalo@depedro.com.ar>

* Updates for allocation in serialize methods.

Signed-off-by: Michael Carroll <michael@openrobotics.org>

* Fix tests for new APIs.

Signed-off-by: Michael Carroll <michael@openrobotics.org>
2019-05-02 11:32:13 -05:00
William Woodall
4d8cb487f8
use new error handling API from rcutils (#314)
* use new error handling API from rcutils

Signed-off-by: William Woodall <william@osrfoundation.org>

* use semicolons after macros

Signed-off-by: William Woodall <william@osrfoundation.org>

* use new error handling API from rcutils

Signed-off-by: William Woodall <william@osrfoundation.org>

* minimize vertical whitespace

Signed-off-by: William Woodall <william@osrfoundation.org>

* use semicolons after macros

Signed-off-by: William Woodall <william@osrfoundation.org>
2018-11-01 21:08:31 -05:00
Karsten Knese
5e3d4be720
Lifecycle refactor (#298)
* no static initialization of states anymore

* make transition labels more descriptive

* introduce labeled keys

* define default transition keys

* fix memory management

* introduce service for transition graph

* export transition keys

* remove keys, transition id unique, label ambiguous

* semicolon for macro call
2018-10-11 14:03:41 -07:00
Chris Lalancette
3d0e2b7966
Add macro semicolons (#303)
* Add semicolons to all RCLCPP and RCUTILS macros.

Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>

* Add semicolons in Windows stdatomic_helper.h

Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
2018-10-05 17:30:27 -04:00
Dirk Thomas
0e772b237e
fix naming of configure_error transition (#292) 2018-09-05 13:08:30 -07:00
William Woodall
ced49473db
Use private substitution in lifecycle topics and services (#260)
* use ~/<topic> rather than manually constructing topics/services

* use check argument for null macros
2018-06-16 18:36:58 -07:00
Michael Carroll
e8491ab8ab
Change #if to #ifdef. (#229)
Needed because you can't use preprocessor on undefined variables in
MISRA.
2018-05-01 17:25:24 -05:00
Ethan Gao
261a46772f segmentation fault for NULL dereference (#202)
* Invalid memory access for NULL dereference

rcl_lifecycle_get_state may return NULL

transition->goal is checked for NULL but no return
while it's true and this may result the follow-up
NULL dereference

Signed-off-by: Ethan Gao <ethan.gao@linux.intel.com>

* Avoid crash while NULL returned from rcl_service_get_options()

Signed-off-by: Ethan Gao <ethan.gao@linux.intel.com>

* tweak error string and null check for current_state

Signed-off-by: Ethan Gao <ethan.gao@linux.intel.com>
2017-12-13 08:31:18 -08:00
Karsten Knese
f21880bb2c
do not deallocate state/transition pointer within the fini functions (#200) 2017-12-06 17:26:35 -08:00
Karsten Knese
c25d227ce9
remove const qualifier for transition states (#197)
* remove const qualifier for transition states

* remove unnecessary const_casts

* init and fini function for state and transition
2017-12-05 20:22:19 -08:00
dhood
7d0045adb8
Add debug logging (#187)
* use ROS_PACKAGE_NAME in debug msgs

* rcl_lifecycle too

* Swap unnamed macros to named

* Remove semicolon

* Add debug logging

* Timer debug logging

* Wait debug

* A bit less wait debug...

* Clearer time output

* Remove the wait sublogger

* Use conditional logging instead of the else{}

* Add 'X finalized' msg

* Add send_response logging

* Remove extra semicolons

* Add publish/take messages

* [style nitpick] formatted variables on the next line
2017-11-21 17:23:50 -08:00
Ethan Gao
54d06f5654 Str mem leak rebased (#185)
* * memory leak issues

address those memory leak issues with the API
rcutils_set_formatted_error which is defined
in rcutils

Signed-off-by: Ethan Gao <ethan.gao@linux.intel.com>

* * Address those memory leak issues with new MACRO
add macro RCL_SET_ERROR_MSG_WITH_FORMAT_STRING which
is equals RCUTILS_SET_ERROR_MSG_WITH_FORMAT_STRING and
fix the memory leak issues with it

Signed-off-by: Ethan Gao <ethan.gao@linux.intel.com>

* address uncrustify grumble

Signed-off-by: Ethan Gao <ethan.gao@linux.intel.com>
2017-11-16 23:25:02 -08:00
Ethan Gao
2079097227 optimize to avoid potential issue from uninitialized scalar variable (#183)
Signed-off-by: Ethan Gao <ethan.gao@linux.intel.com>
2017-11-16 12:41:33 -08:00
Dirk Thomas
72bcb6b5b6 update style to match latest uncrustify 2017-09-28 15:27:22 -07:00
Mikael Arguedas
835a90761c use macros 2017-08-10 12:08:18 -07:00
Karsten Knese
3cff9020d1 replace rcl_lifecycle_ret_t with lifecycle_msgs__TRANSITION__CALLBACK* (#153) 2017-08-02 14:05:03 -07:00
Karsten Knese
5cdef527de remove fprintf, use logging macros (#152)
* remove fprintf, use logging macros

* consistent includes
2017-07-27 07:55:26 -07:00
Karsten Knese
c37bfec072 use rcl_allocator for rcl_lifecycle & namespaced topics (#142)
* use rcl_allocator for rcl_lifecycle

* correct return value interpretation

* fix unsigned comparison

* use namespace for lifecycle in-built topics

* linters
2017-06-16 14:44:06 -07:00
Karsten Knese
6fbfb4ee07 Warn unused (#139)
* add unused warning

* comply with unused warning

* add unused warning

* comply with unused warning

* remove wrongly modified files

* consistent include style
2017-05-25 19:52:25 -07:00
William Woodall
cbfe6b90f9 Namespace expansion (#132)
* update to use new rmw function name

* add rcl_validate_topic_name()

* add rcl_expand_topic_name()

* gcc couldn't handle the init lists with tuples

* uncrustify and cpplint

* fix signed compare warnings

* address comments

* organize the substitution string constants together at the top of the file

* comment
2017-05-09 15:15:57 -07:00
William Woodall
bed40d3d40 rename {c_}utilities to rcutils (#130) 2017-04-20 11:15:03 -07:00
Karsten Knese
f9e03e51bb use c_utilities packages (#129)
* use c_utilities packages

* use rmw topic validation

* fix rebase/merge commits

* alphabetical includes
2017-04-19 15:40:41 -07:00
William Woodall
90176d9f1a move allocator and error handling to c utilities (#122)
* moved allocator to c_utilities

* moved error_handling to c_utilities

* refactor uses of RCL_SET_ERROR_MSG with allocator

* add missing guard condition functions and tests

* add missing timer functions

* refactor rcl_lifecycyle

* missed an instance of RCL_SET_ERROR_MSG

* fix segfaults in error cases for rcl_lifecycle

* remove extra header

* check return code of rcl_lifecycle_init_default_state_machine
2017-04-19 12:37:48 -07:00
Dirk Thomas
da2897982a typesupport c reloaded 2016-12-22 09:47:40 -08:00
Karsten Knese
a18ef97e5a add rcl lifecycle
* (refactor) add rcl_lifecycle package

* (refactor) cleanup free calls

* (fix) initialize state machine with external node handle

* (dev) use external typesupport

* (fix) use external typesupport

* (fix) cleanup states

* (fix) no pointer comparison in state machine

* (test) refactor for rcl testing purpose

* (test) test suite for lifecycle sequence

* (dev) change to rcl_ret_t

* (test) wrong transition test

* (fix) dependency for isolated build

* (clean) remove std_msgs as a dep

* (fix) enable correct visibility control

* (fix) correct test for initialization

* (fix) correct visibility attributes

* (dev) change default value to lifecycle_msgs

* (clean) style and lifecycle prefix

* (dev) cmake macro get_rcl_lifecycle_information

* (cleanup) remove unused files'

* (cleanup) remove callback pointer

* (debug) add print state machine function

* (review) address review comments

* (bugfix) correct export in information.cmake

* (fix) correct visibility control

* (vcs) fix convertion from size_t to unsigned int

* (typo) fix internal struct name

* const correctness

* get_available_states service

* new service msgs

* tes for multiple instances

* (dev) return codes

* initial refactor

* test default sequence

* refactor state machine

* apply upstream changes

* c++14

* disable state machine print

* address review comments

* uncrustify

* fix comparison with unsigned warning
2016-12-14 09:28:54 -08:00