gtest-typed-test.h (googletest-release-1.11.0) | : | gtest-typed-test.h (googletest-release-1.12.0) | ||
---|---|---|---|---|
skipping to change at line 30 | skipping to change at line 30 | |||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
// GOOGLETEST_CM0001 DO NOT DELETE | // IWYU pragma: private, include "gtest/gtest.h" | |||
// IWYU pragma: friend gtest/.* | ||||
// IWYU pragma: friend gmock/.* | ||||
#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ | #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ | |||
#define GOOGLETEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ | #define GOOGLETEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ | |||
// This header implements typed tests and type-parameterized tests. | // This header implements typed tests and type-parameterized tests. | |||
// Typed (aka type-driven) tests repeat the same test for types in a | // Typed (aka type-driven) tests repeat the same test for types in a | |||
// list. You must know which types you want to test with when writing | // list. You must know which types you want to test with when writing | |||
// typed tests. Here's how you do it: | // typed tests. Here's how you do it: | |||
skipping to change at line 193 | skipping to change at line 195 | |||
// Expands to the name of the typedef for the NameGenerator, responsible for | // Expands to the name of the typedef for the NameGenerator, responsible for | |||
// creating the suffixes of the name. | // creating the suffixes of the name. | |||
#define GTEST_NAME_GENERATOR_(TestSuiteName) \ | #define GTEST_NAME_GENERATOR_(TestSuiteName) \ | |||
gtest_type_params_##TestSuiteName##_NameGenerator | gtest_type_params_##TestSuiteName##_NameGenerator | |||
#define TYPED_TEST_SUITE(CaseName, Types, ...) \ | #define TYPED_TEST_SUITE(CaseName, Types, ...) \ | |||
typedef ::testing::internal::GenerateTypeList<Types>::type \ | typedef ::testing::internal::GenerateTypeList<Types>::type \ | |||
GTEST_TYPE_PARAMS_(CaseName); \ | GTEST_TYPE_PARAMS_(CaseName); \ | |||
typedef ::testing::internal::NameGeneratorSelector<__VA_ARGS__>::type \ | typedef ::testing::internal::NameGeneratorSelector<__VA_ARGS__>::type \ | |||
GTEST_NAME_GENERATOR_(CaseName) | GTEST_NAME_GENERATOR_(CaseName) | |||
#define TYPED_TEST(CaseName, TestName) \ | #define TYPED_TEST(CaseName, TestName) \ | |||
static_assert(sizeof(GTEST_STRINGIFY_(TestName)) > 1, \ | static_assert(sizeof(GTEST_STRINGIFY_(TestName)) > 1, \ | |||
"test-name must not be empty"); \ | "test-name must not be empty"); \ | |||
template <typename gtest_TypeParam_> \ | template <typename gtest_TypeParam_> \ | |||
class GTEST_TEST_CLASS_NAME_(CaseName, TestName) \ | class GTEST_TEST_CLASS_NAME_(CaseName, TestName) \ | |||
: public CaseName<gtest_TypeParam_> { \ | : public CaseName<gtest_TypeParam_> { \ | |||
private: \ | private: \ | |||
typedef CaseName<gtest_TypeParam_> TestFixture; \ | typedef CaseName<gtest_TypeParam_> TestFixture; \ | |||
typedef gtest_TypeParam_ TypeParam; \ | typedef gtest_TypeParam_ TypeParam; \ | |||
skipping to change at line 259 | skipping to change at line 261 | |||
// Expands to the name of the variable used to remember the names of | // Expands to the name of the variable used to remember the names of | |||
// the registered tests in the given test suite. | // the registered tests in the given test suite. | |||
#define GTEST_REGISTERED_TEST_NAMES_(TestSuiteName) \ | #define GTEST_REGISTERED_TEST_NAMES_(TestSuiteName) \ | |||
gtest_registered_test_names_##TestSuiteName##_ | gtest_registered_test_names_##TestSuiteName##_ | |||
// The variables defined in the type-parameterized test macros are | // The variables defined in the type-parameterized test macros are | |||
// static as typically these macros are used in a .h file that can be | // static as typically these macros are used in a .h file that can be | |||
// #included in multiple translation units linked together. | // #included in multiple translation units linked together. | |||
#define TYPED_TEST_SUITE_P(SuiteName) \ | #define TYPED_TEST_SUITE_P(SuiteName) \ | |||
static ::testing::internal::TypedTestSuitePState \ | static ::testing::internal::TypedTestSuitePState \ | |||
GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName) | GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName) | |||
// Legacy API is deprecated but still available | // Legacy API is deprecated but still available | |||
#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ | #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ | |||
#define TYPED_TEST_CASE_P \ | #define TYPED_TEST_CASE_P \ | |||
static_assert(::testing::internal::TypedTestCase_P_IsDeprecated(), ""); \ | static_assert(::testing::internal::TypedTestCase_P_IsDeprecated(), ""); \ | |||
TYPED_TEST_SUITE_P | TYPED_TEST_SUITE_P | |||
#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ | #endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ | |||
#define TYPED_TEST_P(SuiteName, TestName) \ | #define TYPED_TEST_P(SuiteName, TestName) \ | |||
namespace GTEST_SUITE_NAMESPACE_(SuiteName) { \ | namespace GTEST_SUITE_NAMESPACE_(SuiteName) { \ | |||
skipping to change at line 304 | skipping to change at line 306 | |||
GTEST_STRINGIFY_(SuiteName), __FILE__, __LINE__, #__VA_ARGS__) | GTEST_STRINGIFY_(SuiteName), __FILE__, __LINE__, #__VA_ARGS__) | |||
// Legacy API is deprecated but still available | // Legacy API is deprecated but still available | |||
#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ | #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ | |||
#define REGISTER_TYPED_TEST_CASE_P \ | #define REGISTER_TYPED_TEST_CASE_P \ | |||
static_assert(::testing::internal::RegisterTypedTestCase_P_IsDeprecated(), \ | static_assert(::testing::internal::RegisterTypedTestCase_P_IsDeprecated(), \ | |||
""); \ | ""); \ | |||
REGISTER_TYPED_TEST_SUITE_P | REGISTER_TYPED_TEST_SUITE_P | |||
#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ | #endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ | |||
#define INSTANTIATE_TYPED_TEST_SUITE_P(Prefix, SuiteName, Types, ...) \ | #define INSTANTIATE_TYPED_TEST_SUITE_P(Prefix, SuiteName, Types, ...) \ | |||
static_assert(sizeof(GTEST_STRINGIFY_(Prefix)) > 1, \ | static_assert(sizeof(GTEST_STRINGIFY_(Prefix)) > 1, \ | |||
"test-suit-prefix must not be empty"); \ | "test-suit-prefix must not be empty"); \ | |||
static bool gtest_##Prefix##_##SuiteName GTEST_ATTRIBUTE_UNUSED_ = \ | static bool gtest_##Prefix##_##SuiteName GTEST_ATTRIBUTE_UNUSED_ = \ | |||
::testing::internal::TypeParameterizedTestSuite< \ | ::testing::internal::TypeParameterizedTestSuite< \ | |||
SuiteName, GTEST_SUITE_NAMESPACE_(SuiteName)::gtest_AllTests_, \ | SuiteName, GTEST_SUITE_NAMESPACE_(SuiteName)::gtest_AllTests_, \ | |||
::testing::internal::GenerateTypeList<Types>::type>:: \ | ::testing::internal::GenerateTypeList<Types>::type>:: \ | |||
Register(GTEST_STRINGIFY_(Prefix), \ | Register(GTEST_STRINGIFY_(Prefix), \ | |||
::testing::internal::CodeLocation(__FILE__, __LINE__), \ | ::testing::internal::CodeLocation(__FILE__, __LINE__), \ | |||
>EST_TYPED_TEST_SUITE_P_STATE_(SuiteName), \ | >EST_TYPED_TEST_SUITE_P_STATE_(SuiteName), \ | |||
GTEST_STRINGIFY_(SuiteName), \ | GTEST_STRINGIFY_(SuiteName), \ | |||
GTEST_REGISTERED_TEST_NAMES_(SuiteName), \ | GTEST_REGISTERED_TEST_NAMES_(SuiteName), \ | |||
::testing::internal::GenerateNames< \ | ::testing::internal::GenerateNames< \ | |||
::testing::internal::NameGeneratorSelector< \ | ::testing::internal::NameGeneratorSelector< \ | |||
__VA_ARGS__>::type, \ | __VA_ARGS__>::type, \ | |||
::testing::internal::GenerateTypeList<Types>::type>()) | ::testing::internal::GenerateTypeList<Types>::type>()) | |||
// Legacy API is deprecated but still available | // Legacy API is deprecated but still available | |||
#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ | #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ | |||
#define INSTANTIATE_TYPED_TEST_CASE_P \ | #define INSTANTIATE_TYPED_TEST_CASE_P \ | |||
static_assert( \ | static_assert( \ | |||
::testing::internal::InstantiateTypedTestCase_P_IsDeprecated(), ""); \ | ::testing::internal::InstantiateTypedTestCase_P_IsDeprecated(), ""); \ | |||
INSTANTIATE_TYPED_TEST_SUITE_P | INSTANTIATE_TYPED_TEST_SUITE_P | |||
#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ | #endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ | |||
End of changes. 4 change blocks. | ||||
18 lines changed or deleted | 20 lines changed or added |