32#ifndef GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_
33#define GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_
49 typedef std::list<T> List;
70 TypeParam n = this->
value_;
74 n += TestFixture::shared_;
78 typename TestFixture::List values;
148 DoesBlah, HasPropertyA);
178#if GTEST_HAS_TYPED_TEST
184#define GTEST_TYPE_PARAMS_(TestSuiteName) gtest_type_params_##TestSuiteName##_
188#define GTEST_NAME_GENERATOR_(TestSuiteName) \
189 gtest_type_params_##TestSuiteName##_NameGenerator
191#define TYPED_TEST_SUITE(CaseName, Types, ...) \
192 typedef ::testing::internal::GenerateTypeList<Types>::type \
193 GTEST_TYPE_PARAMS_(CaseName); \
194 typedef ::testing::internal::NameGeneratorSelector<__VA_ARGS__>::type \
195 GTEST_NAME_GENERATOR_(CaseName)
197#define TYPED_TEST(CaseName, TestName) \
198 static_assert(sizeof(GTEST_STRINGIFY_(TestName)) > 1, \
199 "test-name must not be empty"); \
200 template <typename gtest_TypeParam_> \
201 class GTEST_TEST_CLASS_NAME_(CaseName, TestName) \
202 : public CaseName<gtest_TypeParam_> { \
204 typedef CaseName<gtest_TypeParam_> TestFixture; \
205 typedef gtest_TypeParam_ TypeParam; \
206 void TestBody() override; \
208 static bool gtest_##CaseName##_##TestName##_registered_ \
209 GTEST_ATTRIBUTE_UNUSED_ = ::testing::internal::TypeParameterizedTest< \
211 ::testing::internal::TemplateSel<GTEST_TEST_CLASS_NAME_(CaseName, \
213 GTEST_TYPE_PARAMS_( \
214 CaseName)>::Register("", \
215 ::testing::internal::CodeLocation( \
216 __FILE__, __LINE__), \
217 GTEST_STRINGIFY_(CaseName), \
218 GTEST_STRINGIFY_(TestName), 0, \
219 ::testing::internal::GenerateNames< \
220 GTEST_NAME_GENERATOR_(CaseName), \
221 GTEST_TYPE_PARAMS_(CaseName)>()); \
222 template <typename gtest_TypeParam_> \
223 void GTEST_TEST_CLASS_NAME_(CaseName, \
224 TestName)<gtest_TypeParam_>::TestBody()
227#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
228#define TYPED_TEST_CASE \
229 static_assert(::testing::internal::TypedTestCaseIsDeprecated(), ""); \
237#if GTEST_HAS_TYPED_TEST_P
244#define GTEST_SUITE_NAMESPACE_(TestSuiteName) gtest_suite_##TestSuiteName##_
250#define GTEST_TYPED_TEST_SUITE_P_STATE_(TestSuiteName) \
251 gtest_typed_test_suite_p_state_##TestSuiteName##_
257#define GTEST_REGISTERED_TEST_NAMES_(TestSuiteName) \
258 gtest_registered_test_names_##TestSuiteName##_
263#define TYPED_TEST_SUITE_P(SuiteName) \
264 static ::testing::internal::TypedTestSuitePState \
265 GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName)
268#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
269#define TYPED_TEST_CASE_P \
270 static_assert(::testing::internal::TypedTestCase_P_IsDeprecated(), ""); \
274#define TYPED_TEST_P(SuiteName, TestName) \
275 namespace GTEST_SUITE_NAMESPACE_(SuiteName) { \
276 template <typename gtest_TypeParam_> \
277 class TestName : public SuiteName<gtest_TypeParam_> { \
279 typedef SuiteName<gtest_TypeParam_> TestFixture; \
280 typedef gtest_TypeParam_ TypeParam; \
281 void TestBody() override; \
283 static bool gtest_##TestName##_defined_ GTEST_ATTRIBUTE_UNUSED_ = \
284 GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName).AddTestName( \
285 __FILE__, __LINE__, GTEST_STRINGIFY_(SuiteName), \
286 GTEST_STRINGIFY_(TestName)); \
288 template <typename gtest_TypeParam_> \
289 void GTEST_SUITE_NAMESPACE_( \
290 SuiteName)::TestName<gtest_TypeParam_>::TestBody()
293#define REGISTER_TYPED_TEST_SUITE_P(SuiteName, ...) \
294 namespace GTEST_SUITE_NAMESPACE_(SuiteName) { \
295 typedef ::testing::internal::Templates<__VA_ARGS__> gtest_AllTests_; \
297 static const char* const GTEST_REGISTERED_TEST_NAMES_( \
298 SuiteName) GTEST_ATTRIBUTE_UNUSED_ = \
299 GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName).VerifyRegisteredTestNames( \
300 GTEST_STRINGIFY_(SuiteName), __FILE__, __LINE__, #__VA_ARGS__)
303#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
304#define REGISTER_TYPED_TEST_CASE_P \
305 static_assert(::testing::internal::RegisterTypedTestCase_P_IsDeprecated(), \
307 REGISTER_TYPED_TEST_SUITE_P
310#define INSTANTIATE_TYPED_TEST_SUITE_P(Prefix, SuiteName, Types, ...) \
311 static_assert(sizeof(GTEST_STRINGIFY_(Prefix)) > 1, \
312 "test-suit-prefix must not be empty"); \
313 static bool gtest_##Prefix##_##SuiteName GTEST_ATTRIBUTE_UNUSED_ = \
314 ::testing::internal::TypeParameterizedTestSuite< \
315 SuiteName, GTEST_SUITE_NAMESPACE_(SuiteName)::gtest_AllTests_, \
316 ::testing::internal::GenerateTypeList<Types>::type>:: \
317 Register(GTEST_STRINGIFY_(Prefix), \
318 ::testing::internal::CodeLocation(__FILE__, __LINE__), \
319 >EST_TYPED_TEST_SUITE_P_STATE_(SuiteName), \
320 GTEST_STRINGIFY_(SuiteName), \
321 GTEST_REGISTERED_TEST_NAMES_(SuiteName), \
322 ::testing::internal::GenerateNames< \
323 ::testing::internal::NameGeneratorSelector< \
324 __VA_ARGS__>::type, \
325 ::testing::internal::GenerateTypeList<Types>::type>())
328#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
329#define INSTANTIATE_TYPED_TEST_CASE_P \
331 ::testing::internal::InstantiateTypedTestCase_P_IsDeprecated(), ""); \
332 INSTANTIATE_TYPED_TEST_SUITE_P
INSTANTIATE_TYPED_TEST_SUITE_P(CacheFad, FadOpsUnitTest, FadTypes)
TYPED_TEST_P(FadBLASUnitTests, testSCAL1)
TYPED_TEST_SUITE_P(FadBLASUnitTests)
REGISTER_TYPED_TEST_SUITE_P(FadBLASUnitTests, testSCAL1, testSCAL2, testSCAL3, testSCAL4, testCOPY1, testCOPY2, testCOPY3, testCOPY4, testAXPY1, testAXPY2, testAXPY3, testAXPY4, testDOT1, testDOT2, testDOT3, testDOT4, testNRM21, testNRM22, testGEMV1, testGEMV2, testGEMV3, testGEMV4, testGEMV5, testGEMV6, testGEMV7, testGEMV8, testGEMV9, testTRMV1, testTRMV2, testTRMV3, testTRMV4, testGER1, testGER2, testGER3, testGER4, testGER5, testGER6, testGER7, testGEMM1, testGEMM2, testGEMM3, testGEMM4, testGEMM5, testGEMM6, testGEMM7, testGEMM8, testGEMM9, testGEMM10, testSYMM1, testSYMM2, testSYMM3, testSYMM4, testSYMM5, testSYMM6, testSYMM7, testSYMM8, testSYMM9, testTRMM1, testTRMM2, testTRMM3, testTRMM4, testTRMM5, testTRMM6, testTRMM7, testTRSM1, testTRSM2, testTRSM3, testTRSM4, testTRSM5, testTRSM6, testTRSM7)
testing::Types< VeryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooogName, int *, MyArray< bool, 42 > > MyTypes
TYPED_TEST_SUITE(TypedTest, MyTypes)
TYPED_TEST(TypedTest, TestA)
internal::ProxyTypeList< Ts... > Types