Use -Wpedantic (#306)
* add /W4 flag for windows * use uint8 like defined in messages: fix warning C4244 * fix sign size_t comparison * add only pedantic, not W4, deal with windows another day * another sign compare warning
This commit is contained in:
parent
ce146cfdba
commit
71f5b7fe5b
10 changed files with 45 additions and 43 deletions
|
@ -11,9 +11,10 @@ find_package(rosidl_generator_cpp REQUIRED)
|
||||||
find_package(rosidl_typesupport_c REQUIRED)
|
find_package(rosidl_typesupport_c REQUIRED)
|
||||||
find_package(rosidl_typesupport_cpp REQUIRED)
|
find_package(rosidl_typesupport_cpp REQUIRED)
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
if(WIN32)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
add_compile_options(-Wall -Wextra -Wpedantic)
|
else()
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -Wextra -Wpedantic")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include_directories(include)
|
include_directories(include)
|
||||||
|
|
|
@ -2,9 +2,10 @@ cmake_minimum_required(VERSION 3.5)
|
||||||
|
|
||||||
project(rclcpp_lifecycle)
|
project(rclcpp_lifecycle)
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
if(WIN32)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
add_compile_options(-Wall -Wextra -Wpedantic)
|
else()
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -Wextra -Wpedantic")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(ament_cmake REQUIRED)
|
find_package(ament_cmake REQUIRED)
|
||||||
|
|
|
@ -356,7 +356,7 @@ public:
|
||||||
|
|
||||||
RCLCPP_LIFECYCLE_PUBLIC
|
RCLCPP_LIFECYCLE_PUBLIC
|
||||||
const State &
|
const State &
|
||||||
trigger_transition(unsigned int transition_id);
|
trigger_transition(uint8_t transition_id);
|
||||||
|
|
||||||
RCLCPP_LIFECYCLE_PUBLIC
|
RCLCPP_LIFECYCLE_PUBLIC
|
||||||
bool
|
bool
|
||||||
|
|
|
@ -32,7 +32,7 @@ public:
|
||||||
State();
|
State();
|
||||||
|
|
||||||
RCLCPP_LIFECYCLE_PUBLIC
|
RCLCPP_LIFECYCLE_PUBLIC
|
||||||
State(unsigned int id, const std::string & label);
|
State(uint8_t id, const std::string & label);
|
||||||
|
|
||||||
RCLCPP_LIFECYCLE_PUBLIC
|
RCLCPP_LIFECYCLE_PUBLIC
|
||||||
explicit State(const rcl_lifecycle_state_t * rcl_lifecycle_state_handle);
|
explicit State(const rcl_lifecycle_state_t * rcl_lifecycle_state_handle);
|
||||||
|
@ -41,7 +41,7 @@ public:
|
||||||
virtual ~State();
|
virtual ~State();
|
||||||
|
|
||||||
RCLCPP_LIFECYCLE_PUBLIC
|
RCLCPP_LIFECYCLE_PUBLIC
|
||||||
unsigned int
|
uint8_t
|
||||||
id() const;
|
id() const;
|
||||||
|
|
||||||
RCLCPP_LIFECYCLE_PUBLIC
|
RCLCPP_LIFECYCLE_PUBLIC
|
||||||
|
|
|
@ -33,11 +33,11 @@ public:
|
||||||
Transition() = delete;
|
Transition() = delete;
|
||||||
|
|
||||||
RCLCPP_LIFECYCLE_PUBLIC
|
RCLCPP_LIFECYCLE_PUBLIC
|
||||||
explicit Transition(unsigned int id, const std::string & label = "");
|
explicit Transition(uint8_t id, const std::string & label = "");
|
||||||
|
|
||||||
RCLCPP_LIFECYCLE_PUBLIC
|
RCLCPP_LIFECYCLE_PUBLIC
|
||||||
Transition(
|
Transition(
|
||||||
unsigned int id, const std::string & label,
|
uint8_t id, const std::string & label,
|
||||||
State && start, State && goal);
|
State && start, State && goal);
|
||||||
|
|
||||||
RCLCPP_LIFECYCLE_PUBLIC
|
RCLCPP_LIFECYCLE_PUBLIC
|
||||||
|
@ -47,7 +47,7 @@ public:
|
||||||
virtual ~Transition();
|
virtual ~Transition();
|
||||||
|
|
||||||
RCLCPP_LIFECYCLE_PUBLIC
|
RCLCPP_LIFECYCLE_PUBLIC
|
||||||
unsigned int
|
uint8_t
|
||||||
id() const;
|
id() const;
|
||||||
|
|
||||||
RCLCPP_LIFECYCLE_PUBLIC
|
RCLCPP_LIFECYCLE_PUBLIC
|
||||||
|
|
|
@ -289,7 +289,7 @@ LifecycleNode::trigger_transition(const Transition & transition)
|
||||||
}
|
}
|
||||||
|
|
||||||
const State &
|
const State &
|
||||||
LifecycleNode::trigger_transition(unsigned int transition_id)
|
LifecycleNode::trigger_transition(uint8_t transition_id)
|
||||||
{
|
{
|
||||||
return impl_->trigger_transition(transition_id);
|
return impl_->trigger_transition(transition_id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -202,7 +202,7 @@ public:
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
"Can't get available states. State machine is not initialized.");
|
"Can't get available states. State machine is not initialized.");
|
||||||
}
|
}
|
||||||
for (unsigned int i = 0; i < state_machine_.transition_map.states_size; ++i) {
|
for (uint8_t i = 0; i < state_machine_.transition_map.states_size; ++i) {
|
||||||
lifecycle_msgs::msg::State state;
|
lifecycle_msgs::msg::State state;
|
||||||
state.id = static_cast<uint8_t>(state_machine_.transition_map.states[i].id);
|
state.id = static_cast<uint8_t>(state_machine_.transition_map.states[i].id);
|
||||||
state.label = static_cast<std::string>(state_machine_.transition_map.states[i].label);
|
state.label = static_cast<std::string>(state_machine_.transition_map.states[i].label);
|
||||||
|
@ -223,7 +223,7 @@ public:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (unsigned int i = 0; i < state_machine_.transition_map.transitions_size; ++i) {
|
for (uint8_t i = 0; i < state_machine_.transition_map.transitions_size; ++i) {
|
||||||
rcl_lifecycle_transition_t & rcl_transition = state_machine_.transition_map.transitions[i];
|
rcl_lifecycle_transition_t & rcl_transition = state_machine_.transition_map.transitions[i];
|
||||||
lifecycle_msgs::msg::TransitionDescription trans_desc;
|
lifecycle_msgs::msg::TransitionDescription trans_desc;
|
||||||
trans_desc.transition.id = rcl_transition.id;
|
trans_desc.transition.id = rcl_transition.id;
|
||||||
|
@ -247,7 +247,7 @@ public:
|
||||||
get_available_states()
|
get_available_states()
|
||||||
{
|
{
|
||||||
std::vector<State> states;
|
std::vector<State> states;
|
||||||
for (unsigned int i = 0; i < state_machine_.transition_map.states_size; ++i) {
|
for (uint8_t i = 0; i < state_machine_.transition_map.states_size; ++i) {
|
||||||
State state(&state_machine_.transition_map.states[i]);
|
State state(&state_machine_.transition_map.states[i]);
|
||||||
states.push_back(state);
|
states.push_back(state);
|
||||||
}
|
}
|
||||||
|
@ -259,7 +259,7 @@ public:
|
||||||
{
|
{
|
||||||
std::vector<Transition> transitions;
|
std::vector<Transition> transitions;
|
||||||
|
|
||||||
for (unsigned int i = 0; i < state_machine_.transition_map.transitions_size; ++i) {
|
for (uint8_t i = 0; i < state_machine_.transition_map.transitions_size; ++i) {
|
||||||
Transition transition(
|
Transition transition(
|
||||||
&state_machine_.transition_map.transitions[i]);
|
&state_machine_.transition_map.transitions[i]);
|
||||||
transitions.push_back(transition);
|
transitions.push_back(transition);
|
||||||
|
@ -279,7 +279,7 @@ public:
|
||||||
// keep the initial state to pass to a transition callback
|
// keep the initial state to pass to a transition callback
|
||||||
State initial_state(state_machine_.current_state);
|
State initial_state(state_machine_.current_state);
|
||||||
|
|
||||||
unsigned int transition_id = static_cast<unsigned int>(lifecycle_transition);
|
uint8_t transition_id = lifecycle_transition;
|
||||||
if (rcl_lifecycle_trigger_transition(&state_machine_, transition_id, true) != RCL_RET_OK) {
|
if (rcl_lifecycle_trigger_transition(&state_machine_, transition_id, true) != RCL_RET_OK) {
|
||||||
fprintf(stderr, "%s:%d, Unable to start transition %u from current state %s: %s\n",
|
fprintf(stderr, "%s:%d, Unable to start transition %u from current state %s: %s\n",
|
||||||
__FILE__, __LINE__, transition_id,
|
__FILE__, __LINE__, transition_id,
|
||||||
|
@ -348,7 +348,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
const State &
|
const State &
|
||||||
trigger_transition(unsigned int transition_id)
|
trigger_transition(uint8_t transition_id)
|
||||||
{
|
{
|
||||||
change_state(transition_id);
|
change_state(transition_id);
|
||||||
return get_current_state();
|
return get_current_state();
|
||||||
|
|
|
@ -26,7 +26,7 @@ State::State()
|
||||||
: State(lifecycle_msgs::msg::State::PRIMARY_STATE_UNKNOWN, "unknown")
|
: State(lifecycle_msgs::msg::State::PRIMARY_STATE_UNKNOWN, "unknown")
|
||||||
{}
|
{}
|
||||||
|
|
||||||
State::State(unsigned int id, const std::string & label)
|
State::State(uint8_t id, const std::string & label)
|
||||||
: owns_rcl_state_handle_(true)
|
: owns_rcl_state_handle_(true)
|
||||||
{
|
{
|
||||||
if (label.empty()) {
|
if (label.empty()) {
|
||||||
|
@ -53,7 +53,7 @@ State::~State()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int
|
uint8_t
|
||||||
State::id() const
|
State::id() const
|
||||||
{
|
{
|
||||||
return state_handle_->id;
|
return state_handle_->id;
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
namespace rclcpp_lifecycle
|
namespace rclcpp_lifecycle
|
||||||
{
|
{
|
||||||
|
|
||||||
Transition::Transition(unsigned int id, const std::string & label)
|
Transition::Transition(uint8_t id, const std::string & label)
|
||||||
: owns_rcl_transition_handle_(true)
|
: owns_rcl_transition_handle_(true)
|
||||||
{
|
{
|
||||||
auto transition_handle = new rcl_lifecycle_transition_t;
|
auto transition_handle = new rcl_lifecycle_transition_t;
|
||||||
|
@ -35,7 +35,7 @@ Transition::Transition(unsigned int id, const std::string & label)
|
||||||
}
|
}
|
||||||
|
|
||||||
Transition::Transition(
|
Transition::Transition(
|
||||||
unsigned int id, const std::string & label,
|
uint8_t id, const std::string & label,
|
||||||
State && start, State && goal)
|
State && start, State && goal)
|
||||||
: owns_rcl_transition_handle_(true)
|
: owns_rcl_transition_handle_(true)
|
||||||
{
|
{
|
||||||
|
@ -75,7 +75,7 @@ Transition::~Transition()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int
|
uint8_t
|
||||||
Transition::id() const
|
Transition::id() const
|
||||||
{
|
{
|
||||||
return transition_handle_->id;
|
return transition_handle_->id;
|
||||||
|
|
|
@ -34,40 +34,40 @@ TEST_F(TestStateMachineInfo, available_states) {
|
||||||
auto test_node = std::make_shared<rclcpp_lifecycle::LifecycleNode>("testnode");
|
auto test_node = std::make_shared<rclcpp_lifecycle::LifecycleNode>("testnode");
|
||||||
std::vector<rclcpp_lifecycle::State> available_states =
|
std::vector<rclcpp_lifecycle::State> available_states =
|
||||||
test_node->get_available_states();
|
test_node->get_available_states();
|
||||||
EXPECT_EQ((unsigned int)11, available_states.size());
|
EXPECT_EQ(11u, available_states.size());
|
||||||
|
|
||||||
// Primary States
|
// Primary States
|
||||||
EXPECT_EQ((unsigned int)0, available_states[0].id()); // unknown
|
EXPECT_EQ(0, available_states[0].id()); // unknown
|
||||||
EXPECT_EQ((unsigned int)1, available_states[1].id()); // unconfigured
|
EXPECT_EQ(1, available_states[1].id()); // unconfigured
|
||||||
EXPECT_EQ((unsigned int)2, available_states[2].id()); // inactive
|
EXPECT_EQ(2, available_states[2].id()); // inactive
|
||||||
EXPECT_EQ((unsigned int)3, available_states[3].id()); // active
|
EXPECT_EQ(3, available_states[3].id()); // active
|
||||||
EXPECT_EQ((unsigned int)4, available_states[4].id()); // finalized
|
EXPECT_EQ(4, available_states[4].id()); // finalized
|
||||||
|
|
||||||
// Transition States
|
// Transition States
|
||||||
EXPECT_EQ((unsigned int)10, available_states[5].id()); // configuring
|
EXPECT_EQ(10, available_states[5].id()); // configuring
|
||||||
EXPECT_EQ((unsigned int)11, available_states[6].id()); // cleaningup
|
EXPECT_EQ(11, available_states[6].id()); // cleaningup
|
||||||
EXPECT_EQ((unsigned int)12, available_states[7].id()); // shuttingdown
|
EXPECT_EQ(12, available_states[7].id()); // shuttingdown
|
||||||
EXPECT_EQ((unsigned int)13, available_states[8].id()); // activating
|
EXPECT_EQ(13, available_states[8].id()); // activating
|
||||||
EXPECT_EQ((unsigned int)14, available_states[9].id()); // deactivating
|
EXPECT_EQ(14, available_states[9].id()); // deactivating
|
||||||
EXPECT_EQ((unsigned int)15, available_states[10].id()); // errorprocessing
|
EXPECT_EQ(15, available_states[10].id()); // errorprocessing
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(TestStateMachineInfo, available_transitions) {
|
TEST_F(TestStateMachineInfo, available_transitions) {
|
||||||
auto test_node = std::make_shared<rclcpp_lifecycle::LifecycleNode>("testnode");
|
auto test_node = std::make_shared<rclcpp_lifecycle::LifecycleNode>("testnode");
|
||||||
std::vector<rclcpp_lifecycle::Transition> available_transitions =
|
std::vector<rclcpp_lifecycle::Transition> available_transitions =
|
||||||
test_node->get_available_transitions();
|
test_node->get_available_transitions();
|
||||||
EXPECT_EQ((unsigned int)25, available_transitions.size());
|
EXPECT_EQ(25u, available_transitions.size());
|
||||||
for (rclcpp_lifecycle::Transition & transition : available_transitions) {
|
for (rclcpp_lifecycle::Transition & transition : available_transitions) {
|
||||||
EXPECT_FALSE(transition.label().empty());
|
EXPECT_FALSE(transition.label().empty());
|
||||||
|
|
||||||
EXPECT_TRUE(transition.start_state().id() <= (unsigned int)4 ||
|
EXPECT_TRUE(transition.start_state().id() <= 4 ||
|
||||||
(transition.start_state().id() >= (unsigned int)10 &&
|
(transition.start_state().id() >= 10 &&
|
||||||
(transition.start_state().id() <= (unsigned int)15)));
|
(transition.start_state().id() <= 15)));
|
||||||
EXPECT_FALSE(transition.start_state().label().empty());
|
EXPECT_FALSE(transition.start_state().label().empty());
|
||||||
|
|
||||||
EXPECT_TRUE(transition.goal_state().id() <= (unsigned int)4 ||
|
EXPECT_TRUE(transition.goal_state().id() <= 4 ||
|
||||||
(transition.goal_state().id() >= (unsigned int)10 &&
|
(transition.goal_state().id() >= 10 &&
|
||||||
(transition.goal_state().id() <= (unsigned int)15)));
|
(transition.goal_state().id() <= 15)));
|
||||||
EXPECT_FALSE(transition.goal_state().label().empty());
|
EXPECT_FALSE(transition.goal_state().label().empty());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue