tesseract v5.3.3.20231005
googletest-param-test-test.cc File Reference
#include "gtest/gtest.h"
#include <algorithm>
#include <iostream>
#include <list>
#include <set>
#include <sstream>
#include <string>
#include <vector>
#include "src/gtest-internal-inl.h"
#include "test/googletest-param-test-test.h"

Go to the source code of this file.

Classes

class  DogAdder
 
class  IntWrapper
 
class  NonDefaultConstructAssignString
 
class  TestGenerationEnvironment< kExpectedCalls >
 
class  TestGenerationTest
 
class  GeneratorEvaluationTest
 
class  ExternalGeneratorTest
 
class  MultipleInstantiationTest
 
class  SeparateInstanceTest
 
class  NamingTest
 
class  MacroNamingTest
 
class  MacroNamingTestNonParametrized
 
class  CustomFunctorNamingTest
 
struct  CustomParamNameFunctor
 
class  CustomFunctionNamingTest
 
class  CustomLambdaNamingTest
 
class  CustomIntegerNamingTest
 
struct  CustomStruct
 
class  CustomStructNamingTest
 
struct  StatefulNamingFunctor
 
class  StatefulNamingTest
 
class  Unstreamable
 
class  CommentTest
 
class  NonParameterizedBaseTest
 
class  ParameterizedDerivedTest
 
class  ParameterizedDeathTest
 
class  MyEnumTest
 
class  works_here::NotUsedTest
 
class  works_here::NotUsedTypeTest< T >
 
class  works_here::NotInstantiatedTest
 
class  works_here::NotInstantiatedTypeTest< T >
 

Namespaces

namespace  works_here
 

Macros

#define PREFIX_WITH_FOO(test_name)   Foo##test_name
 
#define PREFIX_WITH_MACRO(test_name)   Macro##test_name
 

Typedefs

using works_here::OtherName = NotInstantiatedTest
 

Enumerations

enum  MyEnums { ENUM1 = 1 , ENUM2 = 3 , ENUM3 = 8 }
 

Functions

template<typename T >
::std::string PrintValue (const T &value)
 
template<typename T , size_t N>
void VerifyGenerator (const ParamGenerator< T > &generator, const T(&expected_values)[N])
 
template<typename T >
void VerifyGeneratorIsEmpty (const ParamGenerator< T > &generator)
 
 TEST (IteratorTest, ParamIteratorConformsToForwardIteratorConcept)
 
 TEST (RangeTest, IntRangeWithDefaultStep)
 
 TEST (RangeTest, IntRangeSingleValue)
 
 TEST (RangeTest, IntRangeEmpty)
 
 TEST (RangeTest, IntRangeWithCustomStep)
 
 TEST (RangeTest, IntRangeWithCustomStepOverUpperBound)
 
 TEST (RangeTest, WorksWithACustomType)
 
 TEST (RangeTest, WorksWithACustomTypeWithDifferentIncrementType)
 
 TEST (ValuesInTest, ValuesInArray)
 
 TEST (ValuesInTest, ValuesInConstArray)
 
 TEST (ValuesInTest, ValuesInSingleElementArray)
 
 TEST (ValuesInTest, ValuesInVector)
 
 TEST (ValuesInTest, ValuesInIteratorRange)
 
 TEST (ValuesInTest, ValuesInSingleElementIteratorRange)
 
 TEST (ValuesInTest, ValuesInEmptyIteratorRange)
 
 TEST (ValuesTest, ValuesWorks)
 
 TEST (ValuesTest, ValuesWorksForValuesOfCompatibleTypes)
 
 TEST (ValuesTest, ValuesWorksForMaxLengthList)
 
 TEST (ValuesTest, ValuesWithSingleParameter)
 
 TEST (BoolTest, BoolWorks)
 
 TEST (CombineTest, CombineWithTwoParameters)
 
 TEST (CombineTest, CombineWithThreeParameters)
 
 TEST (CombineTest, CombineWithFirstParameterSingleValue)
 
 TEST (CombineTest, CombineWithSecondParameterSingleValue)
 
 TEST (CombineTest, CombineWithFirstParameterEmptyRange)
 
 TEST (CombineTest, CombineWithSecondParameterEmptyRange)
 
 TEST (CombineTest, CombineWithMaxNumberOfParameters)
 
 TEST (CombineTest, NonDefaultConstructAssign)
 
 TEST (ParamGeneratorTest, AssignmentWorks)
 
 TEST_P (TestGenerationTest, TestsExpandedAndRun)
 
 INSTANTIATE_TEST_SUITE_P (TestExpansionModule, TestGenerationTest, ValuesIn(test_generation_params))
 
 TEST_P (GeneratorEvaluationTest, GeneratorsEvaluatedInMain)
 
 INSTANTIATE_TEST_SUITE_P (GenEvalModule, GeneratorEvaluationTest, Values(GeneratorEvaluationTest::param_value()))
 
 TEST_P (ExternalGeneratorTest, ExternalGenerator)
 
 INSTANTIATE_TEST_SUITE_P (ExternalGeneratorModule, ExternalGeneratorTest, extern_gen)
 
 TEST_P (ExternalInstantiationTest, IsMultipleOf33)
 
 TEST_P (MultipleInstantiationTest, AllowsMultipleInstances)
 
 INSTANTIATE_TEST_SUITE_P (Sequence1, MultipleInstantiationTest, Values(1, 2))
 
 INSTANTIATE_TEST_SUITE_P (Sequence2, MultipleInstantiationTest, Range(3, 5))
 
 TEST_P (InstantiationInMultipleTranslationUnitsTest, IsMultipleOf42)
 
 INSTANTIATE_TEST_SUITE_P (Sequence1, InstantiationInMultipleTranslationUnitsTest, Values(42, 42 *2))
 
 TEST_P (SeparateInstanceTest, TestsRunInSeparateInstances)
 
 INSTANTIATE_TEST_SUITE_P (FourElemSequence, SeparateInstanceTest, Range(1, 4))
 
 TEST_P (NamingTest, TestsReportCorrectNamesAndParameters)
 
 INSTANTIATE_TEST_SUITE_P (ZeroToFiveSequence, NamingTest, Range(0, 5))
 
 TEST_P (PREFIX_WITH_MACRO(NamingTest), PREFIX_WITH_FOO(SomeTestName))
 
 INSTANTIATE_TEST_SUITE_P (FortyTwo, MacroNamingTest, Values(42))
 
 TEST_F (PREFIX_WITH_MACRO(NamingTestNonParametrized), PREFIX_WITH_FOO(SomeTestName))
 
 TEST (MacroNameing, LookupNames)
 
 TEST_P (CustomFunctorNamingTest, CustomTestNames)
 
 INSTANTIATE_TEST_SUITE_P (CustomParamNameFunctor, CustomFunctorNamingTest, Values(std::string("FunctorName")), CustomParamNameFunctor())
 
 INSTANTIATE_TEST_SUITE_P (AllAllowedCharacters, CustomFunctorNamingTest, Values("abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "01234567890_"), CustomParamNameFunctor())
 
std::string CustomParamNameFunction (const ::testing::TestParamInfo< std::string > &inf)
 
 TEST_P (CustomFunctionNamingTest, CustomTestNames)
 
 INSTANTIATE_TEST_SUITE_P (CustomParamNameFunction, CustomFunctionNamingTest, Values(std::string("FunctionName")), CustomParamNameFunction)
 
 INSTANTIATE_TEST_SUITE_P (CustomParamNameFunctionP, CustomFunctionNamingTest, Values(std::string("FunctionNameP")), &CustomParamNameFunction)
 
 TEST_P (CustomLambdaNamingTest, CustomTestNames)
 
 INSTANTIATE_TEST_SUITE_P (CustomParamNameLambda, CustomLambdaNamingTest, Values(std::string("LambdaName")), [](const ::testing::TestParamInfo< std::string > &inf) { return inf.param;})
 
 TEST (CustomNamingTest, CheckNameRegistry)
 
 TEST_P (CustomIntegerNamingTest, TestsReportCorrectNames)
 
 INSTANTIATE_TEST_SUITE_P (PrintToString, CustomIntegerNamingTest, Range(0, 5), ::testing::PrintToStringParamName())
 
std::ostream & operator<< (std::ostream &stream, const CustomStruct &val)
 
 TEST_P (CustomStructNamingTest, TestsReportCorrectNames)
 
 INSTANTIATE_TEST_SUITE_P (PrintToString, CustomStructNamingTest, Values(CustomStruct(0), CustomStruct(1)), ::testing::PrintToStringParamName())
 
 TEST_P (StatefulNamingTest, TestsReportCorrectNames)
 
 INSTANTIATE_TEST_SUITE_P (StatefulNamingFunctor, StatefulNamingTest, Range(0, 5), StatefulNamingFunctor())
 
 TEST_P (CommentTest, TestsCorrectlyReportUnstreamableParams)
 
 INSTANTIATE_TEST_SUITE_P (InstantiationWithComments, CommentTest, Values(Unstreamable(1)))
 
 TEST_F (NonParameterizedBaseTest, FixtureIsInitialized)
 
 TEST_P (ParameterizedDerivedTest, SeesSequence)
 
 TEST_F (ParameterizedDeathTest, GetParamDiesFromTestF)
 
 INSTANTIATE_TEST_SUITE_P (RangeZeroToFive, ParameterizedDerivedTest, Range(0, 5))
 
 TEST_P (MyEnumTest, ChecksParamMoreThanZero)
 
 INSTANTIATE_TEST_SUITE_P (MyEnumTests, MyEnumTest, ::testing::Values(ENUM1, ENUM2, 0))
 
 works_here::TYPED_TEST_SUITE_P (NotUsedTypeTest)
 
 works_here::GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST (NotInstantiatedTest)
 
 works_here::TEST_P (NotInstantiatedTest, Used)
 
 works_here::TYPED_TEST_SUITE_P (NotInstantiatedTypeTest)
 
 works_here::GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST (NotInstantiatedTypeTest)
 
 works_here::TYPED_TEST_P (NotInstantiatedTypeTest, Used)
 
 works_here::REGISTER_TYPED_TEST_SUITE_P (NotInstantiatedTypeTest, Used)
 
int main (int argc, char **argv)
 

Variables

const int test_generation_params [] = {36, 42, 72}
 
ParamGenerator< int > extern_gen
 

Macro Definition Documentation

◆ PREFIX_WITH_FOO

#define PREFIX_WITH_FOO (   test_name)    Foo##test_name

Definition at line 799 of file googletest-param-test-test.cc.

◆ PREFIX_WITH_MACRO

#define PREFIX_WITH_MACRO (   test_name)    Macro##test_name

Definition at line 800 of file googletest-param-test-test.cc.

Enumeration Type Documentation

◆ MyEnums

enum MyEnums
Enumerator
ENUM1 
ENUM2 
ENUM3 

Definition at line 1060 of file googletest-param-test-test.cc.

1060 {
1061 ENUM1 = 1,
1062 ENUM2 = 3,
1063 ENUM3 = 8,
1064};

Function Documentation

◆ CustomParamNameFunction()

std::string CustomParamNameFunction ( const ::testing::TestParamInfo< std::string > &  inf)
inline

Definition at line 876 of file googletest-param-test-test.cc.

877 {
878 return inf.param;
879}

◆ INSTANTIATE_TEST_SUITE_P() [1/20]

INSTANTIATE_TEST_SUITE_P ( AllAllowedCharacters  ,
CustomFunctorNamingTest  ,
Values("abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "01234567890_")  ,
CustomParamNameFunctor()   
)

◆ INSTANTIATE_TEST_SUITE_P() [2/20]

INSTANTIATE_TEST_SUITE_P ( CustomParamNameFunction  ,
CustomFunctionNamingTest  ,
Values(std::string("FunctionName"))  ,
CustomParamNameFunction   
)

◆ INSTANTIATE_TEST_SUITE_P() [3/20]

INSTANTIATE_TEST_SUITE_P ( CustomParamNameFunctionP  ,
CustomFunctionNamingTest  ,
Values(std::string("FunctionNameP"))  ,
CustomParamNameFunction 
)

◆ INSTANTIATE_TEST_SUITE_P() [4/20]

INSTANTIATE_TEST_SUITE_P ( CustomParamNameFunctor  ,
CustomFunctorNamingTest  ,
Values(std::string("FunctorName"))  ,
CustomParamNameFunctor()   
)

◆ INSTANTIATE_TEST_SUITE_P() [5/20]

INSTANTIATE_TEST_SUITE_P ( CustomParamNameLambda  ,
CustomLambdaNamingTest  ,
Values(std::string("LambdaName"))  ,
[] (const ::testing::TestParamInfo< std::string > &inf) { return inf.param;}   
)

◆ INSTANTIATE_TEST_SUITE_P() [6/20]

INSTANTIATE_TEST_SUITE_P ( ExternalGeneratorModule  ,
ExternalGeneratorTest  ,
extern_gen   
)

◆ INSTANTIATE_TEST_SUITE_P() [7/20]

INSTANTIATE_TEST_SUITE_P ( FortyTwo  ,
MacroNamingTest  ,
Values(42)   
)

◆ INSTANTIATE_TEST_SUITE_P() [8/20]

INSTANTIATE_TEST_SUITE_P ( FourElemSequence  ,
SeparateInstanceTest  ,
Range(1, 4)   
)

◆ INSTANTIATE_TEST_SUITE_P() [9/20]

INSTANTIATE_TEST_SUITE_P ( GenEvalModule  ,
GeneratorEvaluationTest  ,
Values(GeneratorEvaluationTest::param_value())   
)

◆ INSTANTIATE_TEST_SUITE_P() [10/20]

INSTANTIATE_TEST_SUITE_P ( InstantiationWithComments  ,
CommentTest  ,
Values(Unstreamable(1))   
)

◆ INSTANTIATE_TEST_SUITE_P() [11/20]

INSTANTIATE_TEST_SUITE_P ( MyEnumTests  ,
MyEnumTest  ,
::testing::Values(ENUM1, ENUM2, 0)   
)

◆ INSTANTIATE_TEST_SUITE_P() [12/20]

INSTANTIATE_TEST_SUITE_P ( PrintToString  ,
CustomIntegerNamingTest  ,
Range(0, 5)  ,
::testing::PrintToStringParamName()   
)

◆ INSTANTIATE_TEST_SUITE_P() [13/20]

INSTANTIATE_TEST_SUITE_P ( PrintToString  ,
CustomStructNamingTest  ,
Values(CustomStruct(0), CustomStruct(1))  ,
::testing::PrintToStringParamName()   
)

◆ INSTANTIATE_TEST_SUITE_P() [14/20]

INSTANTIATE_TEST_SUITE_P ( RangeZeroToFive  ,
ParameterizedDerivedTest  ,
Range(0, 5)   
)

◆ INSTANTIATE_TEST_SUITE_P() [15/20]

INSTANTIATE_TEST_SUITE_P ( Sequence1  ,
InstantiationInMultipleTranslationUnitsTest  ,
Values(42, 42 *2)   
)

◆ INSTANTIATE_TEST_SUITE_P() [16/20]

INSTANTIATE_TEST_SUITE_P ( Sequence1  ,
MultipleInstantiationTest  ,
Values(1, 2)   
)

◆ INSTANTIATE_TEST_SUITE_P() [17/20]

INSTANTIATE_TEST_SUITE_P ( Sequence2  ,
MultipleInstantiationTest  ,
Range(3, 5)   
)

◆ INSTANTIATE_TEST_SUITE_P() [18/20]

INSTANTIATE_TEST_SUITE_P ( StatefulNamingFunctor  ,
StatefulNamingTest  ,
Range(0, 5)  ,
StatefulNamingFunctor()   
)

◆ INSTANTIATE_TEST_SUITE_P() [19/20]

INSTANTIATE_TEST_SUITE_P ( TestExpansionModule  ,
TestGenerationTest  ,
ValuesIn(test_generation_params  
)

◆ INSTANTIATE_TEST_SUITE_P() [20/20]

INSTANTIATE_TEST_SUITE_P ( ZeroToFiveSequence  ,
NamingTest  ,
Range(0, 5)   
)

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 1104 of file googletest-param-test-test.cc.

1104 {
1105 // Used in TestGenerationTest test suite.
1107 // Used in GeneratorEvaluationTest test suite. Tests that the updated value
1108 // will be picked up for instantiating tests in GeneratorEvaluationTest.
1110
1111 ::testing::InitGoogleTest(&argc, argv);
1112
1113 // Used in GeneratorEvaluationTest test suite. Tests that value updated
1114 // here will NOT be used for instantiating tests in
1115 // GeneratorEvaluationTest.
1117
1118 return RUN_ALL_TESTS();
1119}
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
Definition: gtest.h:2489
Environment * AddGlobalTestEnvironment(Environment *env)
Definition: gtest.h:1493
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
Definition: gtest.cc:6660
static TestGenerationEnvironment * Instance()
static void set_param_value(int param_value)

◆ operator<<()

std::ostream & operator<< ( std::ostream &  stream,
const CustomStruct val 
)

Definition at line 943 of file googletest-param-test-test.cc.

943 {
944 stream << val.x;
945 return stream;
946}

◆ PrintValue()

template<typename T >
::std::string PrintValue ( const T &  value)

Definition at line 70 of file googletest-param-test-test.cc.

70 {
72}
int value
::std::string PrintToString(const T &value)

◆ TEST() [1/31]

TEST ( BoolTest  ,
BoolWorks   
)

Definition at line 401 of file googletest-param-test-test.cc.

401 {
402 const ParamGenerator<bool> gen = Bool();
403
404 const bool expected_values[] = {false, true};
405 VerifyGenerator(gen, expected_values);
406}
void VerifyGenerator(const ParamGenerator< T > &generator, const T(&expected_values)[N])
internal::ParamGenerator< bool > Bool()

◆ TEST() [2/31]

TEST ( CombineTest  ,
CombineWithFirstParameterEmptyRange   
)

Definition at line 459 of file googletest-param-test-test.cc.

459 {
460 const ParamGenerator<std::tuple<int, int> > gen =
461 Combine(Range(0, 0), Values(0, 1));
463}
void VerifyGeneratorIsEmpty(const ParamGenerator< T > &generator)
internal::ParamGenerator< T > Range(T start, T end, IncrementT step)
internal::CartesianProductHolder< Generator... > Combine(const Generator &... g)
internal::ValueArray< T... > Values(T... v)

◆ TEST() [3/31]

TEST ( CombineTest  ,
CombineWithFirstParameterSingleValue   
)

Definition at line 436 of file googletest-param-test-test.cc.

436 {
437 const ParamGenerator<std::tuple<int, int> > gen =
438 Combine(Values(42), Values(0, 1));
439
440 std::tuple<int, int> expected_values[] = {std::make_tuple(42, 0),
441 std::make_tuple(42, 1)};
442 VerifyGenerator(gen, expected_values);
443}

◆ TEST() [4/31]

TEST ( CombineTest  ,
CombineWithMaxNumberOfParameters   
)

Definition at line 475 of file googletest-param-test-test.cc.

475 {
476 const char* foo = "foo";
477 const char* bar = "bar";
478 const ParamGenerator<
479 std::tuple<const char*, int, int, int, int, int, int, int, int, int> >
480 gen =
481 Combine(Values(foo, bar), Values(1), Values(2), Values(3), Values(4),
482 Values(5), Values(6), Values(7), Values(8), Values(9));
483
484 std::tuple<const char*, int, int, int, int, int, int, int, int, int>
485 expected_values[] = {std::make_tuple(foo, 1, 2, 3, 4, 5, 6, 7, 8, 9),
486 std::make_tuple(bar, 1, 2, 3, 4, 5, 6, 7, 8, 9)};
487 VerifyGenerator(gen, expected_values);
488}

◆ TEST() [5/31]

TEST ( CombineTest  ,
CombineWithSecondParameterEmptyRange   
)

Definition at line 467 of file googletest-param-test-test.cc.

467 {
468 const ParamGenerator<std::tuple<int, int> > gen =
469 Combine(Values(0, 1), Range(1, 1));
471}

◆ TEST() [6/31]

TEST ( CombineTest  ,
CombineWithSecondParameterSingleValue   
)

Definition at line 448 of file googletest-param-test-test.cc.

448 {
449 const ParamGenerator<std::tuple<int, int> > gen =
450 Combine(Values(0, 1), Values(42));
451
452 std::tuple<int, int> expected_values[] = {std::make_tuple(0, 42),
453 std::make_tuple(1, 42)};
454 VerifyGenerator(gen, expected_values);
455}

◆ TEST() [7/31]

TEST ( CombineTest  ,
CombineWithThreeParameters   
)

Definition at line 422 of file googletest-param-test-test.cc.

422 {
423 const ParamGenerator<std::tuple<int, int, int> > gen =
424 Combine(Values(0, 1), Values(3, 4), Values(5, 6));
425 std::tuple<int, int, int> expected_values[] = {
426 std::make_tuple(0, 3, 5), std::make_tuple(0, 3, 6),
427 std::make_tuple(0, 4, 5), std::make_tuple(0, 4, 6),
428 std::make_tuple(1, 3, 5), std::make_tuple(1, 3, 6),
429 std::make_tuple(1, 4, 5), std::make_tuple(1, 4, 6)};
430 VerifyGenerator(gen, expected_values);
431}

◆ TEST() [8/31]

TEST ( CombineTest  ,
CombineWithTwoParameters   
)

Definition at line 409 of file googletest-param-test-test.cc.

409 {
410 const char* foo = "foo";
411 const char* bar = "bar";
412 const ParamGenerator<std::tuple<const char*, int> > gen =
413 Combine(Values(foo, bar), Values(3, 4));
414
415 std::tuple<const char*, int> expected_values[] = {
416 std::make_tuple(foo, 3), std::make_tuple(foo, 4), std::make_tuple(bar, 3),
417 std::make_tuple(bar, 4)};
418 VerifyGenerator(gen, expected_values);
419}

◆ TEST() [9/31]

TEST ( CombineTest  ,
NonDefaultConstructAssign   
)

Definition at line 506 of file googletest-param-test-test.cc.

506 {
507 const ParamGenerator<std::tuple<int, NonDefaultConstructAssignString> > gen =
510
511 ParamGenerator<std::tuple<int, NonDefaultConstructAssignString> >::iterator
512 it = gen.begin();
513
514 EXPECT_EQ(0, std::get<0>(*it));
515 EXPECT_EQ("A", std::get<1>(*it).str());
516 ++it;
517
518 EXPECT_EQ(0, std::get<0>(*it));
519 EXPECT_EQ("B", std::get<1>(*it).str());
520 ++it;
521
522 EXPECT_EQ(1, std::get<0>(*it));
523 EXPECT_EQ("A", std::get<1>(*it).str());
524 ++it;
525
526 EXPECT_EQ(1, std::get<0>(*it));
527 EXPECT_EQ("B", std::get<1>(*it).str());
528 ++it;
529
530 EXPECT_TRUE(it == gen.end());
531}
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:2043
#define EXPECT_TRUE(condition)
Definition: gtest.h:1982

◆ TEST() [10/31]

TEST ( CustomNamingTest  ,
CheckNameRegistry   
)

Definition at line 903 of file googletest-param-test-test.cc.

903 {
905 std::set<std::string> test_names;
906 for (int suite_num = 0; suite_num < unit_test->total_test_suite_count();
907 ++suite_num) {
908 const ::testing::TestSuite* test_suite = unit_test->GetTestSuite(suite_num);
909 for (int test_num = 0; test_num < test_suite->total_test_count();
910 ++test_num) {
911 const ::testing::TestInfo* test_info = test_suite->GetTestInfo(test_num);
912 test_names.insert(std::string(test_info->name()));
913 }
914 }
915 EXPECT_EQ(1u, test_names.count("CustomTestNames/FunctorName"));
916 EXPECT_EQ(1u, test_names.count("CustomTestNames/FunctionName"));
917 EXPECT_EQ(1u, test_names.count("CustomTestNames/FunctionNameP"));
918 EXPECT_EQ(1u, test_names.count("CustomTestNames/LambdaName"));
919}
const TestInfo * GetTestInfo(int i) const
Definition: gtest.cc:2973
static UnitTest * GetInstance()
Definition: gtest.cc:5123
const TestSuite * GetTestSuite(int i) const
Definition: gtest.cc:5229
int total_test_suite_count() const
Definition: gtest.cc:5148

◆ TEST() [11/31]

TEST ( IteratorTest  ,
ParamIteratorConformsToForwardIteratorConcept   
)

Definition at line 137 of file googletest-param-test-test.cc.

137 {
138 const ParamGenerator<int> gen = Range(0, 10);
139 ParamGenerator<int>::iterator it = gen.begin();
140
141 // Verifies that iterator initialization works as expected.
142 ParamGenerator<int>::iterator it2 = it;
143 EXPECT_TRUE(*it == *it2) << "Initialized iterators must point to the "
144 << "element same as its source points to";
145
146 // Verifies that iterator assignment works as expected.
147 ++it;
148 EXPECT_FALSE(*it == *it2);
149 it2 = it;
150 EXPECT_TRUE(*it == *it2) << "Assigned iterators must point to the "
151 << "element same as its source points to";
152
153 // Verifies that prefix operator++() returns *this.
154 EXPECT_EQ(&it, &(++it)) << "Result of the prefix operator++ must be "
155 << "refer to the original object";
156
157 // Verifies that the result of the postfix operator++ points to the value
158 // pointed to by the original iterator.
159 int original_value = *it; // Have to compute it outside of macro call to be
160 // unaffected by the parameter evaluation order.
161 EXPECT_EQ(original_value, *(it++));
162
163 // Verifies that prefix and postfix operator++() advance an iterator
164 // all the same.
165 it2 = it;
166 ++it;
167 ++it2;
168 EXPECT_TRUE(*it == *it2);
169}
#define EXPECT_FALSE(condition)
Definition: gtest.h:1986

◆ TEST() [12/31]

TEST ( MacroNameing  ,
LookupNames   
)

Definition at line 824 of file googletest-param-test-test.cc.

824 {
825 std::set<std::string> know_suite_names, know_test_names;
826
828 int ts = 0;
829 while (const testing::TestSuite* suite = ins->GetTestSuite(ts++)) {
830 know_suite_names.insert(suite->name());
831
832 int ti = 0;
833 while (const testing::TestInfo* info = suite->GetTestInfo(ti++)) {
834 know_test_names.insert(std::string(suite->name()) + "." + info->name());
835 }
836 }
837
838 // Check that the expected form of the test suit name actually exists.
839 EXPECT_NE( //
840 know_suite_names.find("FortyTwo/MacroNamingTest"),
841 know_suite_names.end());
842 EXPECT_NE(
843 know_suite_names.find("MacroNamingTestNonParametrized"),
844 know_suite_names.end());
845 // Check that the expected form of the test name actually exists.
846 EXPECT_NE( //
847 know_test_names.find("FortyTwo/MacroNamingTest.FooSomeTestName/0"),
848 know_test_names.end());
849 EXPECT_NE(
850 know_test_names.find("MacroNamingTestNonParametrized.FooSomeTestName"),
851 know_test_names.end());
852}
#define EXPECT_NE(val1, val2)
Definition: gtest.h:2045

◆ TEST() [13/31]

TEST ( ParamGeneratorTest  ,
AssignmentWorks   
)

Definition at line 536 of file googletest-param-test-test.cc.

536 {
537 ParamGenerator<int> gen = Values(1, 2);
538 const ParamGenerator<int> gen2 = Values(3, 4);
539 gen = gen2;
540
541 const int expected_values[] = {3, 4};
542 VerifyGenerator(gen, expected_values);
543}

◆ TEST() [14/31]

TEST ( RangeTest  ,
IntRangeEmpty   
)

Definition at line 188 of file googletest-param-test-test.cc.

188 {
189 const ParamGenerator<int> gen = Range(0, 0);
191}

◆ TEST() [15/31]

TEST ( RangeTest  ,
IntRangeSingleValue   
)

Definition at line 180 of file googletest-param-test-test.cc.

180 {
181 const ParamGenerator<int> gen = Range(0, 1);
182 const int expected_values[] = {0};
183 VerifyGenerator(gen, expected_values);
184}

◆ TEST() [16/31]

TEST ( RangeTest  ,
IntRangeWithCustomStep   
)

Definition at line 195 of file googletest-param-test-test.cc.

195 {
196 const ParamGenerator<int> gen = Range(0, 9, 3);
197 const int expected_values[] = {0, 3, 6};
198 VerifyGenerator(gen, expected_values);
199}

◆ TEST() [17/31]

TEST ( RangeTest  ,
IntRangeWithCustomStepOverUpperBound   
)

Definition at line 205 of file googletest-param-test-test.cc.

205 {
206 const ParamGenerator<int> gen = Range(0, 4, 3);
207 const int expected_values[] = {0, 3};
208 VerifyGenerator(gen, expected_values);
209}

◆ TEST() [18/31]

TEST ( RangeTest  ,
IntRangeWithDefaultStep   
)

Definition at line 172 of file googletest-param-test-test.cc.

172 {
173 const ParamGenerator<int> gen = Range(0, 3);
174 const int expected_values[] = {0, 1, 2};
175 VerifyGenerator(gen, expected_values);
176}

◆ TEST() [19/31]

TEST ( RangeTest  ,
WorksWithACustomType   
)

Definition at line 237 of file googletest-param-test-test.cc.

237 {
238 const ParamGenerator<DogAdder> gen =
239 Range(DogAdder("cat"), DogAdder("catdogdog"), DogAdder("dog"));
240 ParamGenerator<DogAdder>::iterator it = gen.begin();
241
242 ASSERT_FALSE(it == gen.end());
243 EXPECT_STREQ("cat", it->value().c_str());
244
245 ASSERT_FALSE(++it == gen.end());
246 EXPECT_STREQ("catdog", it->value().c_str());
247
248 EXPECT_TRUE(++it == gen.end());
249}
#define ASSERT_FALSE(condition)
Definition: gtest.h:1994
#define EXPECT_STREQ(s1, s2)
Definition: gtest.h:2112

◆ TEST() [20/31]

TEST ( RangeTest  ,
WorksWithACustomTypeWithDifferentIncrementType   
)

Definition at line 271 of file googletest-param-test-test.cc.

271 {
272 const ParamGenerator<IntWrapper> gen = Range(IntWrapper(0), IntWrapper(2));
273 ParamGenerator<IntWrapper>::iterator it = gen.begin();
274
275 ASSERT_FALSE(it == gen.end());
276 EXPECT_EQ(0, it->value());
277
278 ASSERT_FALSE(++it == gen.end());
279 EXPECT_EQ(1, it->value());
280
281 EXPECT_TRUE(++it == gen.end());
282}

◆ TEST() [21/31]

TEST ( ValuesInTest  ,
ValuesInArray   
)

Definition at line 286 of file googletest-param-test-test.cc.

286 {
287 int array[] = {3, 5, 8};
288 const ParamGenerator<int> gen = ValuesIn(array);
289 VerifyGenerator(gen, array);
290}
internal::ParamGenerator< typename std::iterator_traits< ForwardIterator >::value_type > ValuesIn(ForwardIterator begin, ForwardIterator end)

◆ TEST() [22/31]

TEST ( ValuesInTest  ,
ValuesInConstArray   
)

Definition at line 294 of file googletest-param-test-test.cc.

294 {
295 const int array[] = {3, 5, 8};
296 const ParamGenerator<int> gen = ValuesIn(array);
297 VerifyGenerator(gen, array);
298}

◆ TEST() [23/31]

TEST ( ValuesInTest  ,
ValuesInEmptyIteratorRange   
)

Definition at line 349 of file googletest-param-test-test.cc.

349 {
350 typedef ::std::vector<int> ContainerType;
351 ContainerType values;
352 const ParamGenerator<int> gen = ValuesIn(values.begin(), values.end());
353
355}

◆ TEST() [24/31]

TEST ( ValuesInTest  ,
ValuesInIteratorRange   
)

Definition at line 323 of file googletest-param-test-test.cc.

323 {
324 typedef ::std::vector<int> ContainerType;
325 ContainerType values;
326 values.push_back(3);
327 values.push_back(5);
328 values.push_back(8);
329 const ParamGenerator<int> gen = ValuesIn(values.begin(), values.end());
330
331 const int expected_values[] = {3, 5, 8};
332 VerifyGenerator(gen, expected_values);
333}

◆ TEST() [25/31]

TEST ( ValuesInTest  ,
ValuesInSingleElementArray   
)

Definition at line 302 of file googletest-param-test-test.cc.

302 {
303 int array[] = {42};
304 const ParamGenerator<int> gen = ValuesIn(array);
305 VerifyGenerator(gen, array);
306}

◆ TEST() [26/31]

TEST ( ValuesInTest  ,
ValuesInSingleElementIteratorRange   
)

Definition at line 337 of file googletest-param-test-test.cc.

337 {
338 typedef ::std::vector<int> ContainerType;
339 ContainerType values;
340 values.push_back(42);
341 const ParamGenerator<int> gen = ValuesIn(values.begin(), values.end());
342
343 const int expected_values[] = {42};
344 VerifyGenerator(gen, expected_values);
345}

◆ TEST() [27/31]

TEST ( ValuesInTest  ,
ValuesInVector   
)

Definition at line 310 of file googletest-param-test-test.cc.

310 {
311 typedef ::std::vector<int> ContainerType;
312 ContainerType values;
313 values.push_back(3);
314 values.push_back(5);
315 values.push_back(8);
316 const ParamGenerator<int> gen = ValuesIn(values);
317
318 const int expected_values[] = {3, 5, 8};
319 VerifyGenerator(gen, expected_values);
320}

◆ TEST() [28/31]

TEST ( ValuesTest  ,
ValuesWithSingleParameter   
)

Definition at line 393 of file googletest-param-test-test.cc.

393 {
394 const ParamGenerator<int> gen = Values(42);
395
396 const int expected_values[] = {42};
397 VerifyGenerator(gen, expected_values);
398}

◆ TEST() [29/31]

TEST ( ValuesTest  ,
ValuesWorks   
)

Definition at line 358 of file googletest-param-test-test.cc.

358 {
359 const ParamGenerator<int> gen = Values(3, 5, 8);
360
361 const int expected_values[] = {3, 5, 8};
362 VerifyGenerator(gen, expected_values);
363}

◆ TEST() [30/31]

TEST ( ValuesTest  ,
ValuesWorksForMaxLengthList   
)

Definition at line 374 of file googletest-param-test-test.cc.

374 {
375 const ParamGenerator<int> gen = Values(
376 10, 20, 30, 40, 50, 60, 70, 80, 90, 100,
377 110, 120, 130, 140, 150, 160, 170, 180, 190, 200,
378 210, 220, 230, 240, 250, 260, 270, 280, 290, 300,
379 310, 320, 330, 340, 350, 360, 370, 380, 390, 400,
380 410, 420, 430, 440, 450, 460, 470, 480, 490, 500);
381
382 const int expected_values[] = {
383 10, 20, 30, 40, 50, 60, 70, 80, 90, 100,
384 110, 120, 130, 140, 150, 160, 170, 180, 190, 200,
385 210, 220, 230, 240, 250, 260, 270, 280, 290, 300,
386 310, 320, 330, 340, 350, 360, 370, 380, 390, 400,
387 410, 420, 430, 440, 450, 460, 470, 480, 490, 500};
388 VerifyGenerator(gen, expected_values);
389}

◆ TEST() [31/31]

TEST ( ValuesTest  ,
ValuesWorksForValuesOfCompatibleTypes   
)

Definition at line 367 of file googletest-param-test-test.cc.

367 {
368 const ParamGenerator<double> gen = Values(3, 5.0f, 8.0);
369
370 const double expected_values[] = {3.0, 5.0, 8.0};
371 VerifyGenerator(gen, expected_values);
372}

◆ TEST_F() [1/3]

TEST_F ( NonParameterizedBaseTest  ,
FixtureIsInitialized   
)

Definition at line 1039 of file googletest-param-test-test.cc.

1039 {
1040 EXPECT_EQ(17, n_);
1041}

◆ TEST_F() [2/3]

TEST_F ( ParameterizedDeathTest  ,
GetParamDiesFromTestF   
)

Definition at line 1051 of file googletest-param-test-test.cc.

1051 {
1052 EXPECT_DEATH_IF_SUPPORTED(GetParam(),
1053 ".* value-parameterized test .*");
1054}
#define EXPECT_DEATH_IF_SUPPORTED(statement, regex)

◆ TEST_F() [3/3]

TEST_F ( PREFIX_WITH_MACRO(NamingTestNonParametrized)  ,
PREFIX_WITH_FOO(SomeTestName)   
)

Definition at line 815 of file googletest-param-test-test.cc.

816 {
817 const ::testing::TestInfo* const test_info =
819
820 EXPECT_STREQ("MacroNamingTestNonParametrized", test_info->test_suite_name());
821 EXPECT_STREQ("FooSomeTestName", test_info->name());
822}
const TestInfo * current_test_info() const GTEST_LOCK_EXCLUDED_(mutex_)
Definition: gtest.cc:5469

◆ TEST_P() [1/18]

TEST_P ( CommentTest  ,
TestsCorrectlyReportUnstreamableParams   
)

Definition at line 1008 of file googletest-param-test-test.cc.

1008 {
1009 const ::testing::TestInfo* const test_info =
1011
1012 EXPECT_EQ(::testing::PrintToString(GetParam()), test_info->value_param());
1013}

◆ TEST_P() [2/18]

TEST_P ( CustomFunctionNamingTest  ,
CustomTestNames   
)

Definition at line 882 of file googletest-param-test-test.cc.

882{}

◆ TEST_P() [3/18]

TEST_P ( CustomFunctorNamingTest  ,
CustomTestNames   
)

Definition at line 859 of file googletest-param-test-test.cc.

859{}

◆ TEST_P() [4/18]

TEST_P ( CustomIntegerNamingTest  ,
TestsReportCorrectNames   
)

Definition at line 925 of file googletest-param-test-test.cc.

925 {
926 const ::testing::TestInfo* const test_info =
928 Message test_name_stream;
929 test_name_stream << "TestsReportCorrectNames/" << GetParam();
930 EXPECT_STREQ(test_name_stream.GetString().c_str(), test_info->name());
931}

◆ TEST_P() [5/18]

TEST_P ( CustomLambdaNamingTest  ,
CustomTestNames   
)

Definition at line 895 of file googletest-param-test-test.cc.

895{}

◆ TEST_P() [6/18]

TEST_P ( CustomStructNamingTest  ,
TestsReportCorrectNames   
)

Definition at line 950 of file googletest-param-test-test.cc.

950 {
951 const ::testing::TestInfo* const test_info =
953 Message test_name_stream;
954 test_name_stream << "TestsReportCorrectNames/" << GetParam();
955 EXPECT_STREQ(test_name_stream.GetString().c_str(), test_info->name());
956}

◆ TEST_P() [7/18]

TEST_P ( ExternalGeneratorTest  ,
ExternalGenerator   
)

Definition at line 713 of file googletest-param-test-test.cc.

713 {
714 // Sequence produced by extern_gen contains only a single value
715 // which we verify here.
716 EXPECT_EQ(GetParam(), 33);
717}

◆ TEST_P() [8/18]

TEST_P ( ExternalInstantiationTest  ,
IsMultipleOf33   
)

Definition at line 725 of file googletest-param-test-test.cc.

725 {
726 EXPECT_EQ(0, GetParam() % 33);
727}

◆ TEST_P() [9/18]

TEST_P ( GeneratorEvaluationTest  ,
GeneratorsEvaluatedInMain   
)

Definition at line 703 of file googletest-param-test-test.cc.

703 {
704 EXPECT_EQ(1, GetParam());
705}

◆ TEST_P() [10/18]

TEST_P ( InstantiationInMultipleTranslationUnitsTest  ,
IsMultipleOf42   
)

Definition at line 742 of file googletest-param-test-test.cc.

742 {
743 EXPECT_EQ(0, GetParam() % 42);
744}

◆ TEST_P() [11/18]

TEST_P ( MultipleInstantiationTest  ,
AllowsMultipleInstances   
)

Definition at line 732 of file googletest-param-test-test.cc.

732 {
733}

◆ TEST_P() [12/18]

TEST_P ( MyEnumTest  ,
ChecksParamMoreThanZero   
)

Definition at line 1068 of file googletest-param-test-test.cc.

1068{ EXPECT_GE(10, GetParam()); }
#define EXPECT_GE(val1, val2)
Definition: gtest.h:2051

◆ TEST_P() [13/18]

TEST_P ( NamingTest  ,
TestsReportCorrectNamesAndParameters   
)

Definition at line 781 of file googletest-param-test-test.cc.

781 {
782 const ::testing::TestInfo* const test_info =
784
785 EXPECT_STREQ("ZeroToFiveSequence/NamingTest", test_info->test_suite_name());
786
787 Message index_stream;
788 index_stream << "TestsReportCorrectNamesAndParameters/" << GetParam();
789 EXPECT_STREQ(index_stream.GetString().c_str(), test_info->name());
790
791 EXPECT_EQ(::testing::PrintToString(GetParam()), test_info->value_param());
792}

◆ TEST_P() [14/18]

TEST_P ( ParameterizedDerivedTest  ,
SeesSequence   
)

Definition at line 1043 of file googletest-param-test-test.cc.

1043 {
1044 EXPECT_EQ(17, n_);
1045 EXPECT_EQ(0, count_++);
1046 EXPECT_EQ(GetParam(), global_count_++);
1047}

◆ TEST_P() [15/18]

TEST_P ( PREFIX_WITH_MACRO(NamingTest ,
PREFIX_WITH_FOO(SomeTestName)   
)

Definition at line 802 of file googletest-param-test-test.cc.

802 {
803 const ::testing::TestInfo* const test_info =
805
806 EXPECT_STREQ("FortyTwo/MacroNamingTest", test_info->test_suite_name());
807 EXPECT_STREQ("FooSomeTestName/0", test_info->name());
808}

◆ TEST_P() [16/18]

TEST_P ( SeparateInstanceTest  ,
TestsRunInSeparateInstances   
)

Definition at line 768 of file googletest-param-test-test.cc.

768 {
769 EXPECT_EQ(0, count_++);
770 global_count_++;
771}

◆ TEST_P() [17/18]

TEST_P ( StatefulNamingTest  ,
TestsReportCorrectNames   
)

Definition at line 980 of file googletest-param-test-test.cc.

980 {
981 const ::testing::TestInfo* const test_info =
983 sum_ += GetParam();
984 Message test_name_stream;
985 test_name_stream << "TestsReportCorrectNames/" << sum_;
986 EXPECT_STREQ(test_name_stream.GetString().c_str(), test_info->name());
987}

◆ TEST_P() [18/18]

TEST_P ( TestGenerationTest  ,
TestsExpandedAndRun   
)

Definition at line 675 of file googletest-param-test-test.cc.

675 {
676 Environment::Instance()->TestBodyExecuted();
677 EXPECT_EQ(current_parameter_, GetParam());
678 collected_parameters_.push_back(GetParam());
679}

◆ VerifyGenerator()

template<typename T , size_t N>
void VerifyGenerator ( const ParamGenerator< T > &  generator,
const T(&)  expected_values[N] 
)

Definition at line 78 of file googletest-param-test-test.cc.

79 {
80 typename ParamGenerator<T>::iterator it = generator.begin();
81 for (size_t i = 0; i < N; ++i) {
82 ASSERT_FALSE(it == generator.end())
83 << "At element " << i << " when accessing via an iterator "
84 << "created with the copy constructor.\n";
85 // We cannot use EXPECT_EQ() here as the values may be tuples,
86 // which don't support <<.
87 EXPECT_TRUE(expected_values[i] == *it)
88 << "where i is " << i
89 << ", expected_values[i] is " << PrintValue(expected_values[i])
90 << ", *it is " << PrintValue(*it)
91 << ", and 'it' is an iterator created with the copy constructor.\n";
92 ++it;
93 }
94 EXPECT_TRUE(it == generator.end())
95 << "At the presumed end of sequence when accessing via an iterator "
96 << "created with the copy constructor.\n";
97
98 // Test the iterator assignment. The following lines verify that
99 // the sequence accessed via an iterator initialized via the
100 // assignment operator (as opposed to a copy constructor) matches
101 // just the same.
102 it = generator.begin();
103 for (size_t i = 0; i < N; ++i) {
104 ASSERT_FALSE(it == generator.end())
105 << "At element " << i << " when accessing via an iterator "
106 << "created with the assignment operator.\n";
107 EXPECT_TRUE(expected_values[i] == *it)
108 << "where i is " << i
109 << ", expected_values[i] is " << PrintValue(expected_values[i])
110 << ", *it is " << PrintValue(*it)
111 << ", and 'it' is an iterator created with the copy constructor.\n";
112 ++it;
113 }
114 EXPECT_TRUE(it == generator.end())
115 << "At the presumed end of sequence when accessing via an iterator "
116 << "created with the assignment operator.\n";
117}
::std::string PrintValue(const T &value)

◆ VerifyGeneratorIsEmpty()

template<typename T >
void VerifyGeneratorIsEmpty ( const ParamGenerator< T > &  generator)

Definition at line 120 of file googletest-param-test-test.cc.

120 {
121 typename ParamGenerator<T>::iterator it = generator.begin();
122 EXPECT_TRUE(it == generator.end());
123
124 it = generator.begin();
125 EXPECT_TRUE(it == generator.end());
126}

Variable Documentation

◆ extern_gen

ParamGenerator<int> extern_gen
extern

Definition at line 43 of file googletest-param-test2-test.cc.

◆ test_generation_params

const int test_generation_params[] = {36, 42, 72}

Definition at line 609 of file googletest-param-test-test.cc.