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:
Mikael Arguedas 2017-02-27 21:07:57 -08:00 committed by GitHub
parent ce146cfdba
commit 71f5b7fe5b
10 changed files with 45 additions and 43 deletions

View file

@ -11,9 +11,10 @@ find_package(rosidl_generator_cpp REQUIRED)
find_package(rosidl_typesupport_c REQUIRED)
find_package(rosidl_typesupport_cpp REQUIRED)
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
add_compile_options(-Wall -Wextra -Wpedantic)
if(WIN32)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -Wextra -Wpedantic")
endif()
include_directories(include)

View file

@ -2,9 +2,10 @@ cmake_minimum_required(VERSION 3.5)
project(rclcpp_lifecycle)
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
add_compile_options(-Wall -Wextra -Wpedantic)
if(WIN32)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -Wextra -Wpedantic")
endif()
find_package(ament_cmake REQUIRED)

View file

@ -356,7 +356,7 @@ public:
RCLCPP_LIFECYCLE_PUBLIC
const State &
trigger_transition(unsigned int transition_id);
trigger_transition(uint8_t transition_id);
RCLCPP_LIFECYCLE_PUBLIC
bool

View file

@ -32,7 +32,7 @@ public:
State();
RCLCPP_LIFECYCLE_PUBLIC
State(unsigned int id, const std::string & label);
State(uint8_t id, const std::string & label);
RCLCPP_LIFECYCLE_PUBLIC
explicit State(const rcl_lifecycle_state_t * rcl_lifecycle_state_handle);
@ -41,7 +41,7 @@ public:
virtual ~State();
RCLCPP_LIFECYCLE_PUBLIC
unsigned int
uint8_t
id() const;
RCLCPP_LIFECYCLE_PUBLIC

View file

@ -33,11 +33,11 @@ public:
Transition() = delete;
RCLCPP_LIFECYCLE_PUBLIC
explicit Transition(unsigned int id, const std::string & label = "");
explicit Transition(uint8_t id, const std::string & label = "");
RCLCPP_LIFECYCLE_PUBLIC
Transition(
unsigned int id, const std::string & label,
uint8_t id, const std::string & label,
State && start, State && goal);
RCLCPP_LIFECYCLE_PUBLIC
@ -47,7 +47,7 @@ public:
virtual ~Transition();
RCLCPP_LIFECYCLE_PUBLIC
unsigned int
uint8_t
id() const;
RCLCPP_LIFECYCLE_PUBLIC

View file

@ -289,7 +289,7 @@ LifecycleNode::trigger_transition(const Transition & transition)
}
const State &
LifecycleNode::trigger_transition(unsigned int transition_id)
LifecycleNode::trigger_transition(uint8_t transition_id)
{
return impl_->trigger_transition(transition_id);
}

View file

@ -202,7 +202,7 @@ public:
throw std::runtime_error(
"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;
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);
@ -223,7 +223,7 @@ public:
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];
lifecycle_msgs::msg::TransitionDescription trans_desc;
trans_desc.transition.id = rcl_transition.id;
@ -247,7 +247,7 @@ public:
get_available_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]);
states.push_back(state);
}
@ -259,7 +259,7 @@ public:
{
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(
&state_machine_.transition_map.transitions[i]);
transitions.push_back(transition);
@ -279,7 +279,7 @@ public:
// keep the initial state to pass to a transition callback
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) {
fprintf(stderr, "%s:%d, Unable to start transition %u from current state %s: %s\n",
__FILE__, __LINE__, transition_id,
@ -348,7 +348,7 @@ public:
}
const State &
trigger_transition(unsigned int transition_id)
trigger_transition(uint8_t transition_id)
{
change_state(transition_id);
return get_current_state();

View file

@ -26,7 +26,7 @@ State::State()
: 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)
{
if (label.empty()) {
@ -53,7 +53,7 @@ State::~State()
}
}
unsigned int
uint8_t
State::id() const
{
return state_handle_->id;

View file

@ -22,7 +22,7 @@
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)
{
auto transition_handle = new rcl_lifecycle_transition_t;
@ -35,7 +35,7 @@ Transition::Transition(unsigned int id, const std::string & label)
}
Transition::Transition(
unsigned int id, const std::string & label,
uint8_t id, const std::string & label,
State && start, State && goal)
: owns_rcl_transition_handle_(true)
{
@ -75,7 +75,7 @@ Transition::~Transition()
}
}
unsigned int
uint8_t
Transition::id() const
{
return transition_handle_->id;

View file

@ -34,40 +34,40 @@ TEST_F(TestStateMachineInfo, available_states) {
auto test_node = std::make_shared<rclcpp_lifecycle::LifecycleNode>("testnode");
std::vector<rclcpp_lifecycle::State> available_states =
test_node->get_available_states();
EXPECT_EQ((unsigned int)11, available_states.size());
EXPECT_EQ(11u, available_states.size());
// Primary States
EXPECT_EQ((unsigned int)0, available_states[0].id()); // unknown
EXPECT_EQ((unsigned int)1, available_states[1].id()); // unconfigured
EXPECT_EQ((unsigned int)2, available_states[2].id()); // inactive
EXPECT_EQ((unsigned int)3, available_states[3].id()); // active
EXPECT_EQ((unsigned int)4, available_states[4].id()); // finalized
EXPECT_EQ(0, available_states[0].id()); // unknown
EXPECT_EQ(1, available_states[1].id()); // unconfigured
EXPECT_EQ(2, available_states[2].id()); // inactive
EXPECT_EQ(3, available_states[3].id()); // active
EXPECT_EQ(4, available_states[4].id()); // finalized
// Transition States
EXPECT_EQ((unsigned int)10, available_states[5].id()); // configuring
EXPECT_EQ((unsigned int)11, available_states[6].id()); // cleaningup
EXPECT_EQ((unsigned int)12, available_states[7].id()); // shuttingdown
EXPECT_EQ((unsigned int)13, available_states[8].id()); // activating
EXPECT_EQ((unsigned int)14, available_states[9].id()); // deactivating
EXPECT_EQ((unsigned int)15, available_states[10].id()); // errorprocessing
EXPECT_EQ(10, available_states[5].id()); // configuring
EXPECT_EQ(11, available_states[6].id()); // cleaningup
EXPECT_EQ(12, available_states[7].id()); // shuttingdown
EXPECT_EQ(13, available_states[8].id()); // activating
EXPECT_EQ(14, available_states[9].id()); // deactivating
EXPECT_EQ(15, available_states[10].id()); // errorprocessing
}
TEST_F(TestStateMachineInfo, available_transitions) {
auto test_node = std::make_shared<rclcpp_lifecycle::LifecycleNode>("testnode");
std::vector<rclcpp_lifecycle::Transition> 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) {
EXPECT_FALSE(transition.label().empty());
EXPECT_TRUE(transition.start_state().id() <= (unsigned int)4 ||
(transition.start_state().id() >= (unsigned int)10 &&
(transition.start_state().id() <= (unsigned int)15)));
EXPECT_TRUE(transition.start_state().id() <= 4 ||
(transition.start_state().id() >= 10 &&
(transition.start_state().id() <= 15)));
EXPECT_FALSE(transition.start_state().label().empty());
EXPECT_TRUE(transition.goal_state().id() <= (unsigned int)4 ||
(transition.goal_state().id() >= (unsigned int)10 &&
(transition.goal_state().id() <= (unsigned int)15)));
EXPECT_TRUE(transition.goal_state().id() <= 4 ||
(transition.goal_state().id() >= 10 &&
(transition.goal_state().id() <= 15)));
EXPECT_FALSE(transition.goal_state().label().empty());
}
}