diff --git a/include/cucumber-cpp/internal/hook/HookRegistrar.hpp b/include/cucumber-cpp/internal/hook/HookRegistrar.hpp index bee9009b..dc97b569 100644 --- a/include/cucumber-cpp/internal/hook/HookRegistrar.hpp +++ b/include/cucumber-cpp/internal/hook/HookRegistrar.hpp @@ -35,7 +35,7 @@ class BeforeHook : public Hook { class AroundStepHook : public Hook { public: - virtual void invokeHook(Scenario *scenario, CallableStep *step); + virtual void invokeHookWithStep(Scenario *scenario, CallableStep *step); virtual void skipHook(); protected: CallableStep *step; diff --git a/include/cucumber-cpp/internal/hook/Tag.hpp b/include/cucumber-cpp/internal/hook/Tag.hpp index 22634001..48db4a00 100644 --- a/include/cucumber-cpp/internal/hook/Tag.hpp +++ b/include/cucumber-cpp/internal/hook/Tag.hpp @@ -16,6 +16,7 @@ class TagExpression { public: typedef std::vector tag_list; + virtual ~TagExpression() { } virtual bool matches(const tag_list &tags) = 0; }; diff --git a/include/cucumber-cpp/internal/step/StepManager.hpp b/include/cucumber-cpp/internal/step/StepManager.hpp index 41992230..1b2cbe78 100644 --- a/include/cucumber-cpp/internal/step/StepManager.hpp +++ b/include/cucumber-cpp/internal/step/StepManager.hpp @@ -62,6 +62,11 @@ class InvokeArgs { template T getInvokeArg(size_type i) const; const Table & getTableArg() const; + + size_type argsSize() const { + return args.size(); + } + private: Table tableArg; args_type args; @@ -91,7 +96,7 @@ class InvokeResult { bool isSuccess() const; bool isPending() const; - const InvokeResultType getType() const; + InvokeResultType getType() const; const std::string &getDescription() const; }; @@ -157,7 +162,7 @@ class StepManager { }; -static std::string toSourceString(const char *filePath, const int line) { +static inline std::string toSourceString(const char *filePath, const int line) { using namespace std; stringstream s; string file(filePath); diff --git a/include/cucumber-cpp/internal/utils/Regex.hpp b/include/cucumber-cpp/internal/utils/Regex.hpp index 55f1e5c9..08bc1205 100644 --- a/include/cucumber-cpp/internal/utils/Regex.hpp +++ b/include/cucumber-cpp/internal/utils/Regex.hpp @@ -1,8 +1,11 @@ #ifndef CUKE_REGEX_HPP_ #define CUKE_REGEX_HPP_ +#include #include +#define BOOST_REGEX_V4_CHAR_REGEX_TRAITS_HPP + #include namespace cucumber { diff --git a/src/CukeEngineImpl.cpp b/src/CukeEngineImpl.cpp index 290b1f0b..fb594c0c 100644 --- a/src/CukeEngineImpl.cpp +++ b/src/CukeEngineImpl.cpp @@ -55,13 +55,13 @@ void CukeEngineImpl::invokeStep(const std::string & id, const invoke_args_type & if (tableArg.shape()[0] > 1 && tableArg.shape()[1] > 0) { Table & commandTableArg = commandArgs.getVariableTableArg(); - for (table_index j = 0; j < tableArg.shape()[1]; ++j) { + for (table_index j = 0; j < table_index(tableArg.shape()[1]); ++j) { commandTableArg.addColumn(tableArg[0][j]); } - for (table_index i = 1; i < tableArg.shape()[0]; ++i) { + for (table_index i = 1; i < table_index(tableArg.shape()[0]); ++i) { Table::row_type row; - for (table_index j = 0; j < tableArg.shape()[1]; ++j) { + for (table_index j = 0; j < table_index(tableArg.shape()[1]); ++j) { row.push_back(tableArg[i][j]); } commandTableArg.addRow(row); @@ -87,11 +87,11 @@ void CukeEngineImpl::invokeStep(const std::string & id, const invoke_args_type & } } -void CukeEngineImpl::endScenario(const tags_type & tags) { +void CukeEngineImpl::endScenario(const tags_type & /*tags*/) { cukeCommands.endScenario(); } -std::string CukeEngineImpl::snippetText(const std::string & keyword, const std::string & name, const std::string & multilineArgClass) const { +std::string CukeEngineImpl::snippetText(const std::string & keyword, const std::string & name, const std::string & /*multilineArgClass*/) const { return cukeCommands.snippetText(keyword, name); } diff --git a/src/HookRegistrar.cpp b/src/HookRegistrar.cpp index 13e92dc1..eb52caa2 100644 --- a/src/HookRegistrar.cpp +++ b/src/HookRegistrar.cpp @@ -24,7 +24,7 @@ bool Hook::tagsMatch(Scenario *scenario) { return !scenario || tagExpression->matches(scenario->getTags()); } -void AroundStepHook::invokeHook(Scenario *scenario, CallableStep *step) { +void AroundStepHook::invokeHookWithStep(Scenario *scenario, CallableStep *step) { this->step = step; Hook::invokeHook(scenario); } @@ -155,7 +155,7 @@ void StepCallChain::execNext() { } else { HookRegistrar::aroundhook_list_type::iterator currentHook = nextHook++; CallableStepChain callableStepChain(this); - (*currentHook)->invokeHook(scenario, &callableStepChain); + (*currentHook)->invokeHookWithStep(scenario, &callableStepChain); } } diff --git a/src/StepManager.cpp b/src/StepManager.cpp index 20838c3a..73a9781f 100644 --- a/src/StepManager.cpp +++ b/src/StepManager.cpp @@ -114,7 +114,7 @@ bool InvokeResult::isPending() const { return (type == PENDING); } -const InvokeResultType InvokeResult::getType() const { +InvokeResultType InvokeResult::getType() const { return type; } diff --git a/src/connectors/wire/WireProtocol.cpp b/src/connectors/wire/WireProtocol.cpp index b12706e8..e94013d3 100644 --- a/src/connectors/wire/WireProtocol.cpp +++ b/src/connectors/wire/WireProtocol.cpp @@ -88,7 +88,8 @@ void SnippetTextResponse::accept(WireResponseVisitor *visitor) const { class CommandDecoder { public: - virtual WireCommand *decode(const mValue & jsonArgs) const = 0; + virtual ~CommandDecoder() { } + virtual WireCommand *decode(const mValue & jsonArgs) const = 0; }; @@ -256,7 +257,7 @@ namespace { return write_string(v, false); } - void visit(const SuccessResponse *response) { + void visit(const SuccessResponse* /*response*/) { success(); } diff --git a/src/connectors/wire/WireProtocolCommands.cpp b/src/connectors/wire/WireProtocolCommands.cpp index 1209b6d0..a8f00a17 100644 --- a/src/connectors/wire/WireProtocolCommands.cpp +++ b/src/connectors/wire/WireProtocolCommands.cpp @@ -71,7 +71,7 @@ WireResponse *SnippetTextCommand::run(CukeEngine *engine) const { } -WireResponse *FailingCommand::run(CukeEngine *engine) const { +WireResponse *FailingCommand::run(CukeEngine* /*engine*/) const { return new FailureResponse; } diff --git a/src/connectors/wire/WireServer.cpp b/src/connectors/wire/WireServer.cpp index 915c272f..64ac2249 100644 --- a/src/connectors/wire/WireServer.cpp +++ b/src/connectors/wire/WireServer.cpp @@ -4,9 +4,9 @@ namespace cucumber { namespace internal { SocketServer::SocketServer(const ProtocolHandler *protocolHandler) : + protocolHandler(protocolHandler), ios(), - acceptor(ios), - protocolHandler(protocolHandler) { + acceptor(ios) { } void SocketServer::listen(const port_type port) { diff --git a/src/drivers/BoostDriver.cpp b/src/drivers/BoostDriver.cpp index ec74ab40..8525643d 100644 --- a/src/drivers/BoostDriver.cpp +++ b/src/drivers/BoostDriver.cpp @@ -15,13 +15,18 @@ namespace internal { namespace { - -bool boost_test_init() { +#ifdef BOOST_TEST_ALTERNATIVE_INIT_API + bool boost_init_unit_test() { return true; -} - -static CukeBoostLogInterceptor *logInterceptor = 0; - + } +#else + ::boost::unit_test::test_suite* + boost_init_unit_test_suite(int /*argc*/, char* /*argv*/[]) { + return NULL; + } +#endif + + static CukeBoostLogInterceptor *logInterceptor = 0; } @@ -31,19 +36,19 @@ class CukeBoostLogInterceptor : public ::boost::unit_test::unit_test_log_formatt void reset(); // Formatter - void log_start( std::ostream&, counter_t test_cases_amount) {}; + void log_start( std::ostream&, counter_t /*test_cases_amount*/) {}; void log_finish( std::ostream&) {}; void log_build_info( std::ostream&) {}; - void test_unit_start( std::ostream&, test_unit const& tu) {}; - void test_unit_finish( std::ostream&, test_unit const& tu, unsigned long elapsed) {}; - void test_unit_skipped( std::ostream&, test_unit const& tu) {}; + void test_unit_start( std::ostream&, test_unit const& /*tu*/) {}; + void test_unit_finish( std::ostream&, test_unit const& /*tu*/, unsigned long /*elapsed*/) {}; + void test_unit_skipped( std::ostream&, test_unit const& /*tu*/) {}; - void log_exception( std::ostream&, log_checkpoint_data const&, execution_exception const& ex) {}; + void log_exception( std::ostream&, log_checkpoint_data const&, execution_exception const& /*ex*/) {}; - void log_entry_start( std::ostream&, log_entry_data const&, log_entry_types let) {}; - void log_entry_value( std::ostream&, const_string value); - void log_entry_value( std::ostream&, lazy_ostream const& value) {}; + void log_entry_start( std::ostream&, log_entry_data const&, log_entry_types /*let*/) {}; + void log_entry_value( std::ostream&, const_string /*value*/); + void log_entry_value( std::ostream&, lazy_ostream const& /*value*/) {}; void log_entry_finish( std::ostream&) {}; void log_exception(std::ostream&, const boost::unit_test::log_checkpoint_data&, boost::unit_test::const_string) {}; @@ -83,7 +88,12 @@ void BoostStep::initBoostTest() { if (!framework::is_initialized()) { int argc = 2; char *argv[] = { (char *) "", (char *) "" }; - framework::init(&boost_test_init, argc, argv); + +#ifdef BOOST_TEST_ALTERNATIVE_INIT_API + framework::init(&boost_init_unit_test, argc, argv); +#else + framework::init(&boost_init_unit_test_suite, argc, argv); +#endif logInterceptor = new CukeBoostLogInterceptor; ::boost::unit_test::unit_test_log.set_formatter(logInterceptor); ::boost::unit_test::unit_test_log.set_threshold_level(log_all_errors); diff --git a/tests/utils/HookRegistrationFixture.hpp b/tests/utils/HookRegistrationFixture.hpp index a488bc2b..6eebcd6b 100644 --- a/tests/utils/HookRegistrationFixture.hpp +++ b/tests/utils/HookRegistrationFixture.hpp @@ -54,7 +54,7 @@ class HookRegistrarDouble : public HookRegistrar { EmptyCallableStep emptyStep; aroundhook_list_type &ash = aroundStepHooks(); for (HookRegistrar::aroundhook_list_type::const_iterator h = ash.begin(); h != ash.end(); ++h) { - (*h)->invokeHook(scenario, &emptyStep); + (*h)->invokeHookWithStep(scenario, &emptyStep); } } };