34 #include <type_traits>
92 #if GTEST_HAS_TYPED_TEST
99 typedef Types<char, int> TwoTypes;
109 typename TestFixture::Vector empty;
112 typename TestFixture::IntSet empty2;
135 template <
typename T>
136 class TypedTest1 :
public Test {
144 template <
typename T>
145 class TypedTest2 :
public Test {
160 template <
typename T>
161 class NumericTest :
public Test {
164 typedef Types<int, long> NumericTypes;
174 template <
typename T>
175 class TypedTestWithNames :
public Test {};
177 class TypedTestNames {
179 template <
typename T>
180 static std::string GetName(
int i) {
192 TYPED_TEST(TypedTestWithNames, TestSuiteName) {
195 ->current_test_info()
197 "TypedTestWithNames/char0");
201 ->current_test_info()
203 "TypedTestWithNames/int1");
207 #endif // GTEST_HAS_TYPED_TEST
210 #if GTEST_HAS_TYPED_TEST_P
213 using testing::internal::TypedTestSuitePState;
217 class TypedTestSuitePStateTest :
public Test {
219 void SetUp()
override {
220 state_.AddTestName(
"foo.cc", 0,
"FooTest",
"A");
221 state_.AddTestName(
"foo.cc", 0,
"FooTest",
"B");
222 state_.AddTestName(
"foo.cc", 0,
"FooTest",
"C");
225 TypedTestSuitePState state_;
228 TEST_F(TypedTestSuitePStateTest, SucceedsForMatchingList) {
229 const char* tests =
"A, B, C";
231 state_.VerifyRegisteredTestNames(
"Suite",
"foo.cc", 1, tests));
236 TEST_F(TypedTestSuitePStateTest, IgnoresOrderAndSpaces) {
237 const char* tests =
"A,C, B";
239 state_.VerifyRegisteredTestNames(
"Suite",
"foo.cc", 1, tests));
242 using TypedTestSuitePStateDeathTest = TypedTestSuitePStateTest;
244 TEST_F(TypedTestSuitePStateDeathTest, DetectsDuplicates) {
246 state_.VerifyRegisteredTestNames(
"Suite",
"foo.cc", 1,
"A, B, A, C"),
247 "foo\\.cc.1.?: Test A is listed more than once\\.");
250 TEST_F(TypedTestSuitePStateDeathTest, DetectsExtraTest) {
252 state_.VerifyRegisteredTestNames(
"Suite",
"foo.cc", 1,
"A, B, C, D"),
253 "foo\\.cc.1.?: No test named D can be found in this test suite\\.");
256 TEST_F(TypedTestSuitePStateDeathTest, DetectsMissedTest) {
258 state_.VerifyRegisteredTestNames(
"Suite",
"foo.cc", 1,
"A, C"),
259 "foo\\.cc.1.?: You forgot to list test B\\.");
264 TEST_F(TypedTestSuitePStateDeathTest, DetectsTestAfterRegistration) {
265 state_.VerifyRegisteredTestNames(
"Suite",
"foo.cc", 1,
"A, B, C");
267 state_.AddTestName(
"foo.cc", 2,
"FooTest",
"D"),
268 "foo\\.cc.2.?: Test D must be defined before REGISTER_TYPED_TEST_SUITE_P"
269 "\\(FooTest, \\.\\.\\.\\)\\.");
275 template <
typename T>
302 ValuesAreCorrect, ValuesAreStillCorrect);
304 typedef Types<short, long> MyTwoTypes;
309 template <
typename T>
310 class TypeParametrizedTestWithNames :
public Test {};
314 TYPED_TEST_P(TypeParametrizedTestWithNames, TestSuiteName) {
317 ->current_test_info()
319 "CustomName/TypeParametrizedTestWithNames/parChar0");
323 ->current_test_info()
325 "CustomName/TypeParametrizedTestWithNames/parInt1");
331 class TypeParametrizedTestNames {
333 template <
typename T>
334 static std::string GetName(
int i) {
345 TwoTypes, TypeParametrizedTestNames);
350 template <
typename T>
351 class TypedTestP1 :
public Test {
358 using IntAfterTypedTestSuiteP = int;
365 using IntBeforeRegisterTypedTestSuiteP = int;
369 template <
typename T>
370 class TypedTestP2 :
public Test {
383 IntAfterTypedTestSuiteP after = 0;
384 IntBeforeRegisterTypedTestSuiteP before = 0;
398 typedef Types<std::vector<double>, std::set<char> > MyContainers;
406 template <
typename T>
407 class NumericTest :
public Test {
421 DefaultIsZero, ZeroIsLessThanOne);
422 typedef Types<int, double> NumericTypes;
425 static const char* GetTestName() {
429 template <
typename T>
class TrimmedTest :
public Test { };
438 Test1, Test2,Test3 , Test4 ,Test5 );
439 template <
typename T1,
typename T2>
struct MyPair {};
441 typedef Types<int, double, MyPair<int, int> > TrimTypes;
446 #endif // GTEST_HAS_TYPED_TEST_P
448 #if !defined(GTEST_HAS_TYPED_TEST) && !defined(GTEST_HAS_TYPED_TEST_P)
456 TEST(DummyTest, TypedTestsAreNotSupportedOnThisPlatform) {}
462 #endif // #if !defined(GTEST_HAS_TYPED_TEST) && !defined(GTEST_HAS_TYPED_TEST_P)
#define EXPECT_DEATH_IF_SUPPORTED(statement, regex)
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)
TYPED_TEST_P(FadBLASUnitTests, testSCAL1)
#define GTEST_DISABLE_MSC_WARNINGS_POP_()
::std::string PrintToString(const T &value)
static void TearDownTestSuite()
#define TEST_F(test_fixture, test_name)
#define TEST(test_suite_name, test_name)
internal::ProxyTypeList< Ts...> Types
#define EXPECT_LT(val1, val2)
const char * name() const
FloatingPoint< double > Double
#define ASSERT_TRUE(condition)
#define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings)
TYPED_TEST_SUITE(TypedTest, MyTypes)
#define EXPECT_STREQ(s1, s2)
const TestInfo * current_test_info() const GTEST_LOCK_EXCLUDED_(mutex_)
static void SetUpTestSuite()
TYPED_TEST(FunctionMockerTest, MocksVoidFunction)
TYPED_TEST_SUITE_P(FadBLASUnitTests)
#define EXPECT_EQ(val1, val2)
INSTANTIATE_TYPED_TEST_SUITE_P(CacheFad, FadOpsUnitTest, FadTypes)
static UnitTest * GetInstance()