Skip to content

Commit 3fbe4db

Browse files
derekmaurocopybara-github
authored andcommitted
GoogleTest C++17 cleanups
* Use `[[nodiscard]]` instead of GTEST_MUST_USE_RESULT_ * Use `[[maybe_unused]]` instead of GTEST_INTERNAL_ATTRIBUTE_MAYBE_UNUSED * Use `[[deprecated]]` instead of `GTEST_INTERNAL_DEPRECATED` * Remove `GTEST_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL` PiperOrigin-RevId: 729523519 Change-Id: Ia1b901cf9c0a0e148eec419ada0e0b56aba2dd3d
1 parent a6ce08a commit 3fbe4db

File tree

11 files changed

+145
-209
lines changed

11 files changed

+145
-209
lines changed

googlemock/include/gmock/gmock-actions.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2230,9 +2230,9 @@ ::testing::Action<F> MakeAction(std::shared_ptr<Impl> impl) {
22302230
}
22312231

22322232
#define GMOCK_INTERNAL_ARG_UNUSED(i, data, el) \
2233-
, GTEST_INTERNAL_ATTRIBUTE_MAYBE_UNUSED const arg##i##_type& arg##i
2234-
#define GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_ \
2235-
GTEST_INTERNAL_ATTRIBUTE_MAYBE_UNUSED const args_type& args GMOCK_PP_REPEAT( \
2233+
, [[maybe_unused]] const arg##i##_type& arg##i
2234+
#define GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_ \
2235+
[[maybe_unused]] const args_type& args GMOCK_PP_REPEAT( \
22362236
GMOCK_INTERNAL_ARG_UNUSED, , 10)
22372237

22382238
#define GMOCK_INTERNAL_ARG(i, data, el) , const arg##i##_type& arg##i
@@ -2297,8 +2297,8 @@ ::testing::Action<F> MakeAction(std::shared_ptr<Impl> impl) {
22972297
std::shared_ptr<const gmock_Impl> impl_; \
22982298
}; \
22992299
template <GMOCK_ACTION_TYPENAME_PARAMS_(params)> \
2300-
inline full_name<GMOCK_ACTION_TYPE_PARAMS_(params)> name( \
2301-
GMOCK_ACTION_TYPE_GVALUE_PARAMS_(params)) GTEST_MUST_USE_RESULT_; \
2300+
[[nodiscard]] inline full_name<GMOCK_ACTION_TYPE_PARAMS_(params)> name( \
2301+
GMOCK_ACTION_TYPE_GVALUE_PARAMS_(params)); \
23022302
template <GMOCK_ACTION_TYPENAME_PARAMS_(params)> \
23032303
inline full_name<GMOCK_ACTION_TYPE_PARAMS_(params)> name( \
23042304
GMOCK_ACTION_TYPE_GVALUE_PARAMS_(params)) { \
@@ -2333,7 +2333,7 @@ ::testing::Action<F> MakeAction(std::shared_ptr<Impl> impl) {
23332333
return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const; \
23342334
}; \
23352335
}; \
2336-
inline name##Action name() GTEST_MUST_USE_RESULT_; \
2336+
[[nodiscard]] inline name##Action name(); \
23372337
inline name##Action name() { return name##Action(); } \
23382338
template <typename function_type, typename return_type, typename args_type, \
23392339
GMOCK_ACTION_TEMPLATE_ARGS_NAMES_> \

googlemock/include/gmock/gmock-matchers.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5555,8 +5555,7 @@ PolymorphicMatcher<internal::ExceptionMatcherImpl<Err>> ThrowsMessage(
55555555
template <typename arg_type> \
55565556
bool name##Matcher::gmock_Impl<arg_type>::MatchAndExplain( \
55575557
const arg_type& arg, \
5558-
GTEST_INTERNAL_ATTRIBUTE_MAYBE_UNUSED ::testing::MatchResultListener* \
5559-
result_listener) const
5558+
[[maybe_unused]] ::testing::MatchResultListener* result_listener) const
55605559

55615560
#define MATCHER_P(name, p0, description) \
55625561
GMOCK_INTERNAL_MATCHER(name, name##MatcherP, description, (#p0), (p0))
@@ -5641,8 +5640,8 @@ PolymorphicMatcher<internal::ExceptionMatcherImpl<Err>> ThrowsMessage(
56415640
bool full_name<GMOCK_INTERNAL_MATCHER_TYPE_PARAMS(args)>:: \
56425641
gmock_Impl<arg_type>::MatchAndExplain( \
56435642
const arg_type& arg, \
5644-
GTEST_INTERNAL_ATTRIBUTE_MAYBE_UNUSED ::testing:: \
5645-
MatchResultListener* result_listener) const
5643+
[[maybe_unused]] ::testing::MatchResultListener* result_listener) \
5644+
const
56465645

56475646
#define GMOCK_INTERNAL_MATCHER_TEMPLATE_PARAMS(args) \
56485647
GMOCK_PP_TAIL( \

googlemock/include/gmock/gmock-more-actions.h

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -521,9 +521,8 @@
521521
GMOCK_INTERNAL_DECL_##value_params) \
522522
GMOCK_PP_IF(GMOCK_PP_IS_EMPTY(GMOCK_INTERNAL_COUNT_##value_params), \
523523
= default; \
524-
, \
525-
: impl_(std::make_shared<gmock_Impl>( \
526-
GMOCK_INTERNAL_LIST_##value_params)){}) \
524+
, : impl_(std::make_shared<gmock_Impl>( \
525+
GMOCK_INTERNAL_LIST_##value_params)){}) \
527526
GMOCK_ACTION_CLASS_(name, value_params)(const GMOCK_ACTION_CLASS_( \
528527
name, value_params) &) noexcept GMOCK_INTERNAL_DEFN_COPY_ \
529528
##value_params \
@@ -551,10 +550,10 @@
551550
}; \
552551
template <GMOCK_INTERNAL_DECL_##template_params \
553552
GMOCK_INTERNAL_DECL_TYPE_##value_params> \
554-
GMOCK_ACTION_CLASS_( \
553+
[[nodiscard]] GMOCK_ACTION_CLASS_( \
555554
name, value_params)<GMOCK_INTERNAL_LIST_##template_params \
556555
GMOCK_INTERNAL_LIST_TYPE_##value_params> \
557-
name(GMOCK_INTERNAL_DECL_##value_params) GTEST_MUST_USE_RESULT_; \
556+
name(GMOCK_INTERNAL_DECL_##value_params); \
558557
template <GMOCK_INTERNAL_DECL_##template_params \
559558
GMOCK_INTERNAL_DECL_TYPE_##value_params> \
560559
inline GMOCK_ACTION_CLASS_( \

googlemock/include/gmock/internal/gmock-internal-utils.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -467,11 +467,6 @@ struct Function<R(Args...)> {
467467
using MakeResultIgnoredValue = IgnoredValue(Args...);
468468
};
469469

470-
#ifdef GTEST_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
471-
template <typename R, typename... Args>
472-
constexpr size_t Function<R(Args...)>::ArgumentCount;
473-
#endif
474-
475470
// Workaround for MSVC error C2039: 'type': is not a member of 'std'
476471
// when std::tuple_element is used.
477472
// See: https://github.com/google/googletest/issues/3931

googletest/include/gtest/gtest-assertion-result.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,13 @@ namespace testing {
129129
//
130130
// Expected: Foo() is even
131131
// Actual: it's 5
132+
//
133+
134+
// Returned AssertionResult objects may not be ignored.
135+
// Note: Disabled for SWIG as it doesn't parse attributes correctly.
136+
#if !defined(SWIG)
137+
class [[nodiscard]] AssertionResult;
138+
#endif // !SWIG
132139

133140
class GTEST_API_ AssertionResult {
134141
public:

googletest/include/gtest/gtest-param-test.h

Lines changed: 33 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ internal::ParamConverterGenerator<T> ConvertGenerator(
469469
::testing::internal::CodeLocation(__FILE__, __LINE__)); \
470470
return 0; \
471471
} \
472-
GTEST_INTERNAL_ATTRIBUTE_MAYBE_UNUSED static int gtest_registering_dummy_; \
472+
[[maybe_unused]] static int gtest_registering_dummy_; \
473473
}; \
474474
int GTEST_TEST_CLASS_NAME_(test_suite_name, \
475475
test_name)::gtest_registering_dummy_ = \
@@ -493,39 +493,38 @@ internal::ParamConverterGenerator<T> ConvertGenerator(
493493
#define GTEST_GET_FIRST_(first, ...) first
494494
#define GTEST_GET_SECOND_(first, second, ...) second
495495

496-
#define INSTANTIATE_TEST_SUITE_P(prefix, test_suite_name, ...) \
497-
static ::testing::internal::ParamGenerator<test_suite_name::ParamType> \
498-
gtest_##prefix##test_suite_name##_EvalGenerator_() { \
499-
return GTEST_EXPAND_(GTEST_GET_FIRST_(__VA_ARGS__, DUMMY_PARAM_)); \
500-
} \
501-
static ::std::string gtest_##prefix##test_suite_name##_EvalGenerateName_( \
502-
const ::testing::TestParamInfo<test_suite_name::ParamType>& info) { \
503-
if (::testing::internal::AlwaysFalse()) { \
504-
::testing::internal::TestNotEmpty(GTEST_EXPAND_(GTEST_GET_SECOND_( \
505-
__VA_ARGS__, \
506-
::testing::internal::DefaultParamName<test_suite_name::ParamType>, \
507-
DUMMY_PARAM_))); \
508-
auto t = std::make_tuple(__VA_ARGS__); \
509-
static_assert(std::tuple_size<decltype(t)>::value <= 2, \
510-
"Too Many Args!"); \
511-
} \
512-
return ((GTEST_EXPAND_(GTEST_GET_SECOND_( \
513-
__VA_ARGS__, \
514-
::testing::internal::DefaultParamName<test_suite_name::ParamType>, \
515-
DUMMY_PARAM_))))(info); \
516-
} \
517-
GTEST_INTERNAL_ATTRIBUTE_MAYBE_UNUSED static int \
518-
gtest_##prefix##test_suite_name##_dummy_ = \
519-
::testing::UnitTest::GetInstance() \
520-
->parameterized_test_registry() \
521-
.GetTestSuitePatternHolder<test_suite_name>( \
522-
GTEST_STRINGIFY_(test_suite_name), \
523-
::testing::internal::CodeLocation(__FILE__, __LINE__)) \
524-
->AddTestSuiteInstantiation( \
525-
GTEST_STRINGIFY_(prefix), \
526-
&gtest_##prefix##test_suite_name##_EvalGenerator_, \
527-
&gtest_##prefix##test_suite_name##_EvalGenerateName_, \
528-
__FILE__, __LINE__)
496+
#define INSTANTIATE_TEST_SUITE_P(prefix, test_suite_name, ...) \
497+
static ::testing::internal::ParamGenerator<test_suite_name::ParamType> \
498+
gtest_##prefix##test_suite_name##_EvalGenerator_() { \
499+
return GTEST_EXPAND_(GTEST_GET_FIRST_(__VA_ARGS__, DUMMY_PARAM_)); \
500+
} \
501+
static ::std::string gtest_##prefix##test_suite_name##_EvalGenerateName_( \
502+
const ::testing::TestParamInfo<test_suite_name::ParamType>& info) { \
503+
if (::testing::internal::AlwaysFalse()) { \
504+
::testing::internal::TestNotEmpty(GTEST_EXPAND_(GTEST_GET_SECOND_( \
505+
__VA_ARGS__, \
506+
::testing::internal::DefaultParamName<test_suite_name::ParamType>, \
507+
DUMMY_PARAM_))); \
508+
auto t = std::make_tuple(__VA_ARGS__); \
509+
static_assert(std::tuple_size<decltype(t)>::value <= 2, \
510+
"Too Many Args!"); \
511+
} \
512+
return ((GTEST_EXPAND_(GTEST_GET_SECOND_( \
513+
__VA_ARGS__, \
514+
::testing::internal::DefaultParamName<test_suite_name::ParamType>, \
515+
DUMMY_PARAM_))))(info); \
516+
} \
517+
[[maybe_unused]] static int gtest_##prefix##test_suite_name##_dummy_ = \
518+
::testing::UnitTest::GetInstance() \
519+
->parameterized_test_registry() \
520+
.GetTestSuitePatternHolder<test_suite_name>( \
521+
GTEST_STRINGIFY_(test_suite_name), \
522+
::testing::internal::CodeLocation(__FILE__, __LINE__)) \
523+
->AddTestSuiteInstantiation( \
524+
GTEST_STRINGIFY_(prefix), \
525+
&gtest_##prefix##test_suite_name##_EvalGenerator_, \
526+
&gtest_##prefix##test_suite_name##_EvalGenerateName_, __FILE__, \
527+
__LINE__)
529528

530529
// Allow Marking a Parameterized test class as not needing to be instantiated.
531530
#define GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(T) \

0 commit comments

Comments
 (0)