Add macros to StatementMacros

This commit is contained in:
Alexander Grund 2020-09-15 14:22:58 +02:00
parent e1ac66a4c1
commit 035ad716bf
No known key found for this signature in database
GPG key ID: E92C451FC21EF13F
35 changed files with 5224 additions and 1208 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -16,5 +16,8 @@ struct my_base
virtual void my_method(int) = 0;
};
MOCK_BASE_CLASS(my_class, my_base){ MOCK_METHOD(my_method, 0) };
MOCK_BASE_CLASS(my_class, my_base)
{
MOCK_METHOD(my_method, 0)
};
} // namespace

View file

@ -9,7 +9,10 @@
#include <turtle/mock.hpp>
namespace {
MOCK_CLASS(my_class){ MOCK_METHOD_EXT(my_method, 1, void(int), my_method) };
MOCK_CLASS(my_class)
{
MOCK_METHOD_EXT(my_method, 1, void(int), my_method)
};
bool constraint(int, int);
void test_case()

View file

@ -9,7 +9,10 @@
#include <turtle/mock.hpp>
namespace {
MOCK_CLASS(my_class){ MOCK_METHOD_EXT(my_method, 1, void(int), my_method) };
MOCK_CLASS(my_class)
{
MOCK_METHOD_EXT(my_method, 1, void(int), my_method)
};
void test_case()
{
my_class c;

View file

@ -9,7 +9,10 @@
#include <turtle/mock.hpp>
namespace {
MOCK_CLASS(my_class){ MOCK_METHOD_EXT(my_method, 1, void(int), my_method) };
MOCK_CLASS(my_class)
{
MOCK_METHOD_EXT(my_method, 1, void(int), my_method)
};
void test_case()
{
my_class c;

View file

@ -9,7 +9,10 @@
#include <turtle/mock.hpp>
namespace {
MOCK_CLASS(my_class){ MOCK_METHOD_EXT(my_method, 0, int(), my_method) };
MOCK_CLASS(my_class)
{
MOCK_METHOD_EXT(my_method, 0, int(), my_method)
};
void test_case()
{
my_class c;

View file

@ -9,7 +9,10 @@
#include <turtle/mock.hpp>
namespace {
MOCK_CLASS(my_class){ MOCK_METHOD_EXT(my_method, 0, std::string(), my_method) };
MOCK_CLASS(my_class)
{
MOCK_METHOD_EXT(my_method, 0, std::string(), my_method)
};
void test_case()
{
my_class c;

View file

@ -9,7 +9,10 @@
#include <turtle/mock.hpp>
namespace {
MOCK_CLASS(my_class){ MOCK_METHOD_EXT(my_method, 0, void(), my_method) };
MOCK_CLASS(my_class)
{
MOCK_METHOD_EXT(my_method, 0, void(), my_method)
};
void test_case()
{
my_class c;

View file

@ -14,5 +14,8 @@ struct my_base
virtual ~my_base() {}
};
MOCK_BASE_CLASS(my_class, my_base){ MOCK_METHOD(my_method, 0) };
MOCK_BASE_CLASS(my_class, my_base)
{
MOCK_METHOD(my_method, 0)
};
} // namespace

View file

@ -17,5 +17,8 @@ struct my_base
virtual void my_method(int, int, int, int, int, int, int, int, int, int) = 0;
};
MOCK_BASE_CLASS(my_class, my_base){ MOCK_METHOD(my_method, 10) };
MOCK_BASE_CLASS(my_class, my_base)
{
MOCK_METHOD(my_method, 10)
};
} // namespace

View file

@ -10,5 +10,8 @@
namespace {
template<typename T>
MOCK_CLASS(my_class){ MOCK_METHOD_EXT(my_method, 1, void(T), my_method) };
}
MOCK_CLASS(my_class)
{
MOCK_METHOD_EXT(my_method, 1, void(T), my_method)
};
} // namespace

View file

@ -15,5 +15,8 @@ struct my_base
virtual void my_method(int) = 0;
};
MOCK_BASE_CLASS(my_class, my_base){ MOCK_METHOD(my_method, 2) };
MOCK_BASE_CLASS(my_class, my_base)
{
MOCK_METHOD(my_method, 2)
};
} // namespace

View file

@ -9,7 +9,10 @@
#include <turtle/mock.hpp>
namespace {
MOCK_CLASS(my_class){ MOCK_METHOD_EXT(my_method, 1, void(int), my_method) };
MOCK_CLASS(my_class)
{
MOCK_METHOD_EXT(my_method, 1, void(int), my_method)
};
void test_case()
{
my_class c;

View file

@ -46,8 +46,11 @@ BOOST_FIXTURE_TEST_CASE(custom_mock_object_without_macros, mock_error_fixture)
}
namespace {
MOCK_CLASS(my_mock){ MOCK_METHOD_EXT(my_method, 1, int(int), my_tag) };
}
MOCK_CLASS(my_mock)
{
MOCK_METHOD_EXT(my_method, 1, int(int), my_tag)
};
} // namespace
BOOST_FIXTURE_TEST_CASE(basic_mock_object_usage, mock_error_fixture)
{
@ -82,8 +85,11 @@ public:
virtual void my_method(int) = 0;
};
MOCK_BASE_CLASS(my_ambiguited_mock, my_ambiguited_interface){ MOCK_METHOD_EXT(my_method, 0, void(), my_tag1)
MOCK_METHOD_EXT(my_method, 1, void(int), my_tag_2) };
MOCK_BASE_CLASS(my_ambiguited_mock, my_ambiguited_interface)
{
MOCK_METHOD_EXT(my_method, 0, void(), my_tag1)
MOCK_METHOD_EXT(my_method, 1, void(int), my_tag_2)
};
} // namespace
BOOST_FIXTURE_TEST_CASE(mock_object_method_disambiguation, mock_error_fixture)
@ -103,9 +109,11 @@ public:
virtual void my_method() const = 0;
};
MOCK_BASE_CLASS(my_const_ambiguited_mock,
my_const_ambiguited_interface){ MOCK_NON_CONST_METHOD_EXT(my_method, 0, void(), tag1)
MOCK_CONST_METHOD_EXT(my_method, 0, void(), tag_2) };
MOCK_BASE_CLASS(my_const_ambiguited_mock, my_const_ambiguited_interface)
{
MOCK_NON_CONST_METHOD_EXT(my_method, 0, void(), tag1)
MOCK_CONST_METHOD_EXT(my_method, 0, void(), tag_2)
};
} // namespace
BOOST_FIXTURE_TEST_CASE(mock_object_method_const_disambiguation, mock_error_fixture)
@ -118,8 +126,11 @@ BOOST_FIXTURE_TEST_CASE(mock_object_method_const_disambiguation, mock_error_fixt
}
namespace {
MOCK_CLASS(my_undefined_mock){ MOCK_METHOD_EXT(m, 1, void(undefined&), t) };
}
MOCK_CLASS(my_undefined_mock)
{
MOCK_METHOD_EXT(m, 1, void(undefined&), t)
};
} // namespace
BOOST_FIXTURE_TEST_CASE(mock_object_method_with_declared_but_not_defined_parameter_is_valid, mock_error_fixture)
{
@ -194,9 +205,9 @@ struct my_template_base_class
virtual void my_other_method() = 0;
};
template<typename T>
MOCK_BASE_CLASS(my_template_base_class_mock,
my_template_base_class<T>){ MOCK_METHOD_EXT_TPL(my_method, 1, void(T), my_method)
MOCK_METHOD_EXT_TPL(my_other_method, 0, void(), my_other_method) };
MOCK_BASE_CLASS(my_template_base_class_mock, my_template_base_class<T>)
{ MOCK_METHOD_EXT_TPL(my_method, 1, void(T), my_method)
MOCK_METHOD_EXT_TPL(my_other_method, 0, void(), my_other_method) };
} // namespace
BOOST_FIXTURE_TEST_CASE(mocking_a_template_base_class_method_is_supported, mock_error_fixture)
@ -234,9 +245,15 @@ private:
int value_;
};
MOCK_BASE_CLASS(my_mock_observer, my_observer){ MOCK_METHOD(notify, 1) };
MOCK_BASE_CLASS(my_mock_observer, my_observer)
{
MOCK_METHOD(notify, 1)
};
MOCK_BASE_CLASS(my_mock_manager, my_manager){ MOCK_METHOD(get_observer, 0) };
MOCK_BASE_CLASS(my_mock_manager, my_manager)
{
MOCK_METHOD(get_observer, 0)
};
struct fixture : mock_error_fixture
{
@ -259,8 +276,11 @@ BOOST_FIXTURE_TEST_CASE(basic_mock_object_collaboration_usage, fixture)
}
namespace {
MOCK_CLASS(my_constructed_class){ MOCK_CONSTRUCTOR(my_constructed_class, 2, (int, const std::string&), constructor) };
}
MOCK_CLASS(my_constructed_class)
{
MOCK_CONSTRUCTOR(my_constructed_class, 2, (int, const std::string&), constructor)
};
} // namespace
BOOST_FIXTURE_TEST_CASE(mocking_a_constructor, mock_error_fixture)
{
@ -272,10 +292,9 @@ BOOST_FIXTURE_TEST_CASE(mocking_a_constructor, mock_error_fixture)
namespace {
template<typename T>
MOCK_CLASS(my_constructed_template_class){
MOCK_CONSTRUCTOR_TPL(my_constructed_template_class, 2, (T, const std::string&), constructor)
};
}
MOCK_CLASS(my_constructed_template_class)
{ MOCK_CONSTRUCTOR_TPL(my_constructed_template_class, 2, (T, const std::string&), constructor) };
} // namespace
BOOST_FIXTURE_TEST_CASE(mocking_a_template_class_constructor, mock_error_fixture)
{
@ -286,8 +305,11 @@ BOOST_FIXTURE_TEST_CASE(mocking_a_template_class_constructor, mock_error_fixture
}
namespace {
MOCK_CLASS(my_destroyed_class){ MOCK_DESTRUCTOR(~my_destroyed_class, destructor) };
}
MOCK_CLASS(my_destroyed_class)
{
MOCK_DESTRUCTOR(~my_destroyed_class, destructor)
};
} // namespace
BOOST_FIXTURE_TEST_CASE(mocking_a_destructor, mock_error_fixture)
{
@ -327,8 +349,11 @@ BOOST_FIXTURE_TEST_CASE(failed_sequence_in_mocked_destructor_does_not_throw, moc
}
namespace {
MOCK_CLASS(boost_optional){ MOCK_METHOD_EXT(method, 0, boost::optional<my_observer&>(), tag) };
}
MOCK_CLASS(boost_optional)
{
MOCK_METHOD_EXT(method, 0, boost::optional<my_observer&>(), tag)
};
} // namespace
BOOST_FIXTURE_TEST_CASE(boost_optional_on_base_class_reference_as_return_type_is_supported, mock_error_fixture)
{
@ -527,7 +552,8 @@ namespace {
template<typename T1, typename T2>
struct my_base
{};
MOCK_BASE_CLASS(my_comma_mock, my_base<int BOOST_PP_COMMA() int>){};
MOCK_BASE_CLASS(my_comma_mock, my_base<int BOOST_PP_COMMA() int>)
{};
} // namespace
#ifdef MOCK_THREAD_SAFE

View file

@ -18,7 +18,10 @@ void my_function(T& t)
{
t.my_method("some parameter");
}
MOCK_CLASS(mock_class){ MOCK_METHOD_EXT(my_method, 1, void(const std::string&), my_tag) };
MOCK_CLASS(mock_class)
{
MOCK_METHOD_EXT(my_method, 1, void(const std::string&), my_tag)
};
} // namespace
BOOST_FIXTURE_TEST_CASE(mock_object_for_static_polymorphism, mock_error_fixture)
@ -30,8 +33,11 @@ BOOST_FIXTURE_TEST_CASE(mock_object_for_static_polymorphism, mock_error_fixture)
}
namespace {
MOCK_CLASS(mock_class_with_operator){ MOCK_CONST_METHOD_EXT(operator+=, 1, mock_class_with_operator &(int), addition) };
}
MOCK_CLASS(mock_class_with_operator)
{
MOCK_CONST_METHOD_EXT(operator+=, 1, mock_class_with_operator &(int), addition)
};
} // namespace
BOOST_FIXTURE_TEST_CASE(mock_addition_operator, mock_error_fixture)
{
@ -42,8 +48,11 @@ BOOST_FIXTURE_TEST_CASE(mock_addition_operator, mock_error_fixture)
}
namespace {
MOCK_CLASS(mock_class_with_conversion_operator){ MOCK_CONVERSION_OPERATOR(operator, int, conversion) };
}
MOCK_CLASS(mock_class_with_conversion_operator)
{
MOCK_CONVERSION_OPERATOR(operator, int, conversion)
};
} // namespace
BOOST_FIXTURE_TEST_CASE(mock_conversion_operator, mock_error_fixture)
{
@ -55,8 +64,9 @@ BOOST_FIXTURE_TEST_CASE(mock_conversion_operator, mock_error_fixture)
namespace {
template<typename T>
MOCK_CLASS(mock_template_class_with_conversion_operator){ MOCK_CONVERSION_OPERATOR_TPL(operator, T, conversion) };
}
MOCK_CLASS(mock_template_class_with_conversion_operator)
{ MOCK_CONVERSION_OPERATOR_TPL(operator, T, conversion) };
} // namespace
BOOST_FIXTURE_TEST_CASE(mock_template_conversion_operator, mock_error_fixture)
{
@ -67,8 +77,11 @@ BOOST_FIXTURE_TEST_CASE(mock_template_conversion_operator, mock_error_fixture)
}
namespace {
MOCK_CLASS(mock_class_with_const_conversion_operator){ MOCK_CONST_CONVERSION_OPERATOR(operator, int, conversion) };
}
MOCK_CLASS(mock_class_with_const_conversion_operator)
{
MOCK_CONST_CONVERSION_OPERATOR(operator, int, conversion)
};
} // namespace
BOOST_FIXTURE_TEST_CASE(mock_const_conversion_operator, mock_error_fixture)
{
@ -80,8 +93,11 @@ BOOST_FIXTURE_TEST_CASE(mock_const_conversion_operator, mock_error_fixture)
}
namespace {
MOCK_CLASS(mock_class_with_non_const_conversion_operator){ MOCK_CONST_CONVERSION_OPERATOR(operator, int, conversion) };
}
MOCK_CLASS(mock_class_with_non_const_conversion_operator)
{
MOCK_CONST_CONVERSION_OPERATOR(operator, int, conversion)
};
} // namespace
BOOST_FIXTURE_TEST_CASE(mock_non_const_conversion_operator, mock_error_fixture)
{
@ -94,10 +110,11 @@ BOOST_FIXTURE_TEST_CASE(mock_non_const_conversion_operator, mock_error_fixture)
namespace {
template<typename T>
MOCK_CLASS(mock_template_class_with_const_conversion_operator){
MOCK_CLASS(mock_template_class_with_const_conversion_operator)
{
MOCK_CONST_CONVERSION_OPERATOR_TPL(operator, T, conversion)
};
}
} // namespace
BOOST_FIXTURE_TEST_CASE(mock_template_const_conversion_operator, mock_error_fixture)
{
@ -109,10 +126,11 @@ BOOST_FIXTURE_TEST_CASE(mock_template_const_conversion_operator, mock_error_fixt
namespace {
template<typename T>
MOCK_CLASS(mock_template_class_with_non_const_conversion_operator){
MOCK_CLASS(mock_template_class_with_non_const_conversion_operator)
{
MOCK_NON_CONST_CONVERSION_OPERATOR_TPL(operator, T, conversion)
};
}
} // namespace
BOOST_FIXTURE_TEST_CASE(mock_template_non_const_conversion_operator, mock_error_fixture)
{
@ -123,9 +141,12 @@ BOOST_FIXTURE_TEST_CASE(mock_template_non_const_conversion_operator, mock_error_
}
namespace {
MOCK_CLASS(my_mock){ MOCK_CONST_METHOD_EXT(my_method, 1, void(int), my_method)
MOCK_CONST_METHOD_EXT(my_method_2, 1, void(int), my_method_2) };
}
MOCK_CLASS(my_mock)
{
MOCK_CONST_METHOD_EXT(my_method, 1, void(int), my_method)
MOCK_CONST_METHOD_EXT(my_method_2, 1, void(int), my_method_2)
};
} // namespace
BOOST_FIXTURE_TEST_CASE(MOCK_CONST_METHOD_EXT_macro_defines_a_bindable_method, mock_error_fixture)
{
@ -297,8 +318,11 @@ BOOST_FIXTURE_TEST_CASE(mock_function_is_named, mock_error_fixture)
}
namespace {
MOCK_CLASS(static_function_class){ MOCK_STATIC_METHOD(f, 1, float(int), f) };
}
MOCK_CLASS(static_function_class)
{
MOCK_STATIC_METHOD(f, 1, float(int), f)
};
} // namespace
BOOST_FIXTURE_TEST_CASE(mock_static_function_is_named, mock_error_fixture)
{
@ -327,20 +351,37 @@ struct base
virtual void m11() = 0;
};
MOCK_BASE_CLASS(variadic, base){ MOCK_METHOD(m1, 0) MOCK_METHOD(m2, 0, void()) MOCK_METHOD(m3, 0, void(), m3)
MOCK_CONST_METHOD(m10, 0) MOCK_CONST_METHOD(m4, 0, void())
MOCK_CONST_METHOD(m5, 0, void(), m5) MOCK_NON_CONST_METHOD(m11, 0)
MOCK_NON_CONST_METHOD(m6, 0, void()) MOCK_NON_CONST_METHOD(m7, 0, void(), m7)
MOCK_STATIC_METHOD(m8, 0, void()) MOCK_STATIC_METHOD(m9, 0, void(), m9) };
MOCK_BASE_CLASS(variadic, base)
{
MOCK_METHOD(m1, 0)
MOCK_METHOD(m2, 0, void())
MOCK_METHOD(m3, 0, void(), m3)
MOCK_CONST_METHOD(m10, 0)
MOCK_CONST_METHOD(m4, 0, void())
MOCK_CONST_METHOD(m5, 0, void(), m5)
MOCK_NON_CONST_METHOD(m11, 0)
MOCK_NON_CONST_METHOD(m6, 0, void())
MOCK_NON_CONST_METHOD(m7, 0, void(), m7)
MOCK_STATIC_METHOD(m8, 0, void())
MOCK_STATIC_METHOD(m9, 0, void(), m9)
};
template<typename T>
MOCK_BASE_CLASS(variadic_tpl, base){ MOCK_METHOD(m1, 0, void()) MOCK_METHOD_TPL(m2, 0, T())
MOCK_METHOD_TPL(m3, 0, T(), m3) MOCK_CONST_METHOD_TPL(m4, 0, T())
MOCK_CONST_METHOD_TPL(m5, 0, T(), m5) MOCK_NON_CONST_METHOD_TPL(m6, 0, T())
MOCK_NON_CONST_METHOD_TPL(m7, 0, T(), m7) MOCK_STATIC_METHOD_TPL(m8, 0, T())
MOCK_STATIC_METHOD_TPL(m9, 0, T(), m9) };
MOCK_BASE_CLASS(variadic_tpl, base)
{
MOCK_METHOD(m1, 0, void())
MOCK_METHOD_TPL(m2, 0, T())
MOCK_METHOD_TPL(m3, 0, T(), m3)
MOCK_CONST_METHOD_TPL(m4, 0, T())
MOCK_CONST_METHOD_TPL(m5, 0, T(), m5)
MOCK_NON_CONST_METHOD_TPL(m6, 0, T())
MOCK_NON_CONST_METHOD_TPL(m7, 0, T(), m7)
MOCK_STATIC_METHOD_TPL(m8, 0, T())
MOCK_STATIC_METHOD_TPL(m9, 0, T(), m9)
};
MOCK_BASE_CLASS(comma_base, std::map<int, int>){};
MOCK_BASE_CLASS(comma_base, std::map<int, int>)
{};
MOCK_FUNCTION(fun1, 0, void())
MOCK_FUNCTION(fun2, 0, void(), fun2)
@ -359,10 +400,16 @@ struct base
virtual void m1() = 0;
};
MOCK_BASE_CLASS(derived, base){ MOCK_METHOD(m1, 0) };
MOCK_BASE_CLASS(derived, base)
{
MOCK_METHOD(m1, 0)
};
template<typename T>
MOCK_BASE_CLASS(derived_tpl, base){ MOCK_METHOD_EXT(m1, 0, void(), m1) };
MOCK_BASE_CLASS(derived_tpl, base)
{
MOCK_METHOD_EXT(m1, 0, void(), m1)
};
} // namespace
#endif // MOCK_VARIADIC_MACROS
@ -381,15 +428,18 @@ struct base
virtual void MOCK_STDCALL m1() = 0;
};
MOCK_BASE_CLASS(derived, base){ MOCK_CONSTRUCTOR(MOCK_STDCALL derived, 0, (), derived)
MOCK_DESTRUCTOR(MOCK_STDCALL ~derived, derived)
MOCK_CONVERSION_OPERATOR(MOCK_STDCALL operator, int, to_int)
MOCK_METHOD_EXT(MOCK_STDCALL m1, 0, void(), m1)
MOCK_METHOD_EXT(MOCK_STDCALL m2, 0, void(), m2)
MOCK_BASE_CLASS(derived, base)
{
MOCK_CONSTRUCTOR(MOCK_STDCALL derived, 0, (), derived)
MOCK_DESTRUCTOR(MOCK_STDCALL ~derived, derived)
MOCK_CONVERSION_OPERATOR(MOCK_STDCALL operator, int, to_int)
MOCK_METHOD_EXT(MOCK_STDCALL m1, 0, void(), m1)
MOCK_METHOD_EXT(MOCK_STDCALL m2, 0, void(), m2)
#ifdef MOCK_VARIADIC_MACROS
MOCK_METHOD(MOCK_STDCALL m3, 0, void(), m3)
MOCK_METHOD(MOCK_STDCALL m3, 0, void(), m3)
#endif
MOCK_STATIC_METHOD(MOCK_STDCALL m4, 0, void(), m4) };
MOCK_STATIC_METHOD(MOCK_STDCALL m4, 0, void(), m4)
};
MOCK_FUNCTION(MOCK_STDCALL f, 0, void(), f)
} // namespace stdcall