1*481dde66SAndroid Build Coastguard Worker# Testing Reference 2*481dde66SAndroid Build Coastguard Worker 3*481dde66SAndroid Build Coastguard Worker<!--* toc_depth: 3 *--> 4*481dde66SAndroid Build Coastguard Worker 5*481dde66SAndroid Build Coastguard WorkerThis page lists the facilities provided by GoogleTest for writing test programs. 6*481dde66SAndroid Build Coastguard WorkerTo use them, add `#include <gtest/gtest.h>`. 7*481dde66SAndroid Build Coastguard Worker 8*481dde66SAndroid Build Coastguard Worker## Macros 9*481dde66SAndroid Build Coastguard Worker 10*481dde66SAndroid Build Coastguard WorkerGoogleTest defines the following macros for writing tests. 11*481dde66SAndroid Build Coastguard Worker 12*481dde66SAndroid Build Coastguard Worker### TEST {#TEST} 13*481dde66SAndroid Build Coastguard Worker 14*481dde66SAndroid Build Coastguard Worker<pre> 15*481dde66SAndroid Build Coastguard WorkerTEST(<em>TestSuiteName</em>, <em>TestName</em>) { 16*481dde66SAndroid Build Coastguard Worker ... <em>statements</em> ... 17*481dde66SAndroid Build Coastguard Worker} 18*481dde66SAndroid Build Coastguard Worker</pre> 19*481dde66SAndroid Build Coastguard Worker 20*481dde66SAndroid Build Coastguard WorkerDefines an individual test named *`TestName`* in the test suite 21*481dde66SAndroid Build Coastguard Worker*`TestSuiteName`*, consisting of the given statements. 22*481dde66SAndroid Build Coastguard Worker 23*481dde66SAndroid Build Coastguard WorkerBoth arguments *`TestSuiteName`* and *`TestName`* must be valid C++ identifiers 24*481dde66SAndroid Build Coastguard Workerand must not contain underscores (`_`). Tests in different test suites can have 25*481dde66SAndroid Build Coastguard Workerthe same individual name. 26*481dde66SAndroid Build Coastguard Worker 27*481dde66SAndroid Build Coastguard WorkerThe statements within the test body can be any code under test. 28*481dde66SAndroid Build Coastguard Worker[Assertions](assertions.md) used within the test body determine the outcome of 29*481dde66SAndroid Build Coastguard Workerthe test. 30*481dde66SAndroid Build Coastguard Worker 31*481dde66SAndroid Build Coastguard Worker### TEST_F {#TEST_F} 32*481dde66SAndroid Build Coastguard Worker 33*481dde66SAndroid Build Coastguard Worker<pre> 34*481dde66SAndroid Build Coastguard WorkerTEST_F(<em>TestFixtureName</em>, <em>TestName</em>) { 35*481dde66SAndroid Build Coastguard Worker ... <em>statements</em> ... 36*481dde66SAndroid Build Coastguard Worker} 37*481dde66SAndroid Build Coastguard Worker</pre> 38*481dde66SAndroid Build Coastguard Worker 39*481dde66SAndroid Build Coastguard WorkerDefines an individual test named *`TestName`* that uses the test fixture class 40*481dde66SAndroid Build Coastguard Worker*`TestFixtureName`*. The test suite name is *`TestFixtureName`*. 41*481dde66SAndroid Build Coastguard Worker 42*481dde66SAndroid Build Coastguard WorkerBoth arguments *`TestFixtureName`* and *`TestName`* must be valid C++ 43*481dde66SAndroid Build Coastguard Workeridentifiers and must not contain underscores (`_`). *`TestFixtureName`* must be 44*481dde66SAndroid Build Coastguard Workerthe name of a test fixture class—see 45*481dde66SAndroid Build Coastguard Worker[Test Fixtures](../primer.md#same-data-multiple-tests). 46*481dde66SAndroid Build Coastguard Worker 47*481dde66SAndroid Build Coastguard WorkerThe statements within the test body can be any code under test. 48*481dde66SAndroid Build Coastguard Worker[Assertions](assertions.md) used within the test body determine the outcome of 49*481dde66SAndroid Build Coastguard Workerthe test. 50*481dde66SAndroid Build Coastguard Worker 51*481dde66SAndroid Build Coastguard Worker### TEST_P {#TEST_P} 52*481dde66SAndroid Build Coastguard Worker 53*481dde66SAndroid Build Coastguard Worker<pre> 54*481dde66SAndroid Build Coastguard WorkerTEST_P(<em>TestFixtureName</em>, <em>TestName</em>) { 55*481dde66SAndroid Build Coastguard Worker ... <em>statements</em> ... 56*481dde66SAndroid Build Coastguard Worker} 57*481dde66SAndroid Build Coastguard Worker</pre> 58*481dde66SAndroid Build Coastguard Worker 59*481dde66SAndroid Build Coastguard WorkerDefines an individual value-parameterized test named *`TestName`* that uses the 60*481dde66SAndroid Build Coastguard Workertest fixture class *`TestFixtureName`*. The test suite name is 61*481dde66SAndroid Build Coastguard Worker*`TestFixtureName`*. 62*481dde66SAndroid Build Coastguard Worker 63*481dde66SAndroid Build Coastguard WorkerBoth arguments *`TestFixtureName`* and *`TestName`* must be valid C++ 64*481dde66SAndroid Build Coastguard Workeridentifiers and must not contain underscores (`_`). *`TestFixtureName`* must be 65*481dde66SAndroid Build Coastguard Workerthe name of a value-parameterized test fixture class—see 66*481dde66SAndroid Build Coastguard Worker[Value-Parameterized Tests](../advanced.md#value-parameterized-tests). 67*481dde66SAndroid Build Coastguard Worker 68*481dde66SAndroid Build Coastguard WorkerThe statements within the test body can be any code under test. Within the test 69*481dde66SAndroid Build Coastguard Workerbody, the test parameter can be accessed with the `GetParam()` function (see 70*481dde66SAndroid Build Coastguard Worker[`WithParamInterface`](#WithParamInterface)). For example: 71*481dde66SAndroid Build Coastguard Worker 72*481dde66SAndroid Build Coastguard Worker```cpp 73*481dde66SAndroid Build Coastguard WorkerTEST_P(MyTestSuite, DoesSomething) { 74*481dde66SAndroid Build Coastguard Worker ... 75*481dde66SAndroid Build Coastguard Worker EXPECT_TRUE(DoSomething(GetParam())); 76*481dde66SAndroid Build Coastguard Worker ... 77*481dde66SAndroid Build Coastguard Worker} 78*481dde66SAndroid Build Coastguard Worker``` 79*481dde66SAndroid Build Coastguard Worker 80*481dde66SAndroid Build Coastguard Worker[Assertions](assertions.md) used within the test body determine the outcome of 81*481dde66SAndroid Build Coastguard Workerthe test. 82*481dde66SAndroid Build Coastguard Worker 83*481dde66SAndroid Build Coastguard WorkerSee also [`INSTANTIATE_TEST_SUITE_P`](#INSTANTIATE_TEST_SUITE_P). 84*481dde66SAndroid Build Coastguard Worker 85*481dde66SAndroid Build Coastguard Worker### INSTANTIATE_TEST_SUITE_P {#INSTANTIATE_TEST_SUITE_P} 86*481dde66SAndroid Build Coastguard Worker 87*481dde66SAndroid Build Coastguard Worker`INSTANTIATE_TEST_SUITE_P(`*`InstantiationName`*`,`*`TestSuiteName`*`,`*`param_generator`*`)` 88*481dde66SAndroid Build Coastguard Worker\ 89*481dde66SAndroid Build Coastguard Worker`INSTANTIATE_TEST_SUITE_P(`*`InstantiationName`*`,`*`TestSuiteName`*`,`*`param_generator`*`,`*`name_generator`*`)` 90*481dde66SAndroid Build Coastguard Worker 91*481dde66SAndroid Build Coastguard WorkerInstantiates the value-parameterized test suite *`TestSuiteName`* (defined with 92*481dde66SAndroid Build Coastguard Worker[`TEST_P`](#TEST_P)). 93*481dde66SAndroid Build Coastguard Worker 94*481dde66SAndroid Build Coastguard WorkerThe argument *`InstantiationName`* is a unique name for the instantiation of the 95*481dde66SAndroid Build Coastguard Workertest suite, to distinguish between multiple instantiations. In test output, the 96*481dde66SAndroid Build Coastguard Workerinstantiation name is added as a prefix to the test suite name 97*481dde66SAndroid Build Coastguard Worker*`TestSuiteName`*. If *`InstantiationName`* is empty 98*481dde66SAndroid Build Coastguard Worker(`INSTANTIATE_TEST_SUITE_P(, ...)`), no prefix is added. 99*481dde66SAndroid Build Coastguard Worker 100*481dde66SAndroid Build Coastguard WorkerThe argument *`param_generator`* is one of the following GoogleTest-provided 101*481dde66SAndroid Build Coastguard Workerfunctions that generate the test parameters, all defined in the `::testing` 102*481dde66SAndroid Build Coastguard Workernamespace: 103*481dde66SAndroid Build Coastguard Worker 104*481dde66SAndroid Build Coastguard Worker<span id="param-generators"></span> 105*481dde66SAndroid Build Coastguard Worker 106*481dde66SAndroid Build Coastguard Worker| Parameter Generator | Behavior | 107*481dde66SAndroid Build Coastguard Worker| ------------------- | ---------------------------------------------------- | 108*481dde66SAndroid Build Coastguard Worker| `Range(begin, end [, step])` | Yields values `{begin, begin+step, begin+step+step, ...}`. The values do not include `end`. `step` defaults to 1. | 109*481dde66SAndroid Build Coastguard Worker| `Values(v1, v2, ..., vN)` | Yields values `{v1, v2, ..., vN}`. | 110*481dde66SAndroid Build Coastguard Worker| `ValuesIn(container)` or `ValuesIn(begin,end)` | Yields values from a C-style array, an STL-style container, or an iterator range `[begin, end)`. | 111*481dde66SAndroid Build Coastguard Worker| `Bool()` | Yields sequence `{false, true}`. | 112*481dde66SAndroid Build Coastguard Worker| `Combine(g1, g2, ..., gN)` | Yields as `std::tuple` *n*-tuples all combinations (Cartesian product) of the values generated by the given *n* generators `g1`, `g2`, ..., `gN`. | 113*481dde66SAndroid Build Coastguard Worker| `ConvertGenerator<T>(g)` | Yields values generated by generator `g`, `static_cast` to `T`. | 114*481dde66SAndroid Build Coastguard Worker 115*481dde66SAndroid Build Coastguard WorkerThe optional last argument *`name_generator`* is a function or functor that 116*481dde66SAndroid Build Coastguard Workergenerates custom test name suffixes based on the test parameters. The function 117*481dde66SAndroid Build Coastguard Workermust accept an argument of type 118*481dde66SAndroid Build Coastguard Worker[`TestParamInfo<class ParamType>`](#TestParamInfo) and return a `std::string`. 119*481dde66SAndroid Build Coastguard WorkerThe test name suffix can only contain alphanumeric characters and underscores. 120*481dde66SAndroid Build Coastguard WorkerGoogleTest provides [`PrintToStringParamName`](#PrintToStringParamName), or a 121*481dde66SAndroid Build Coastguard Workercustom function can be used for more control: 122*481dde66SAndroid Build Coastguard Worker 123*481dde66SAndroid Build Coastguard Worker```cpp 124*481dde66SAndroid Build Coastguard WorkerINSTANTIATE_TEST_SUITE_P( 125*481dde66SAndroid Build Coastguard Worker MyInstantiation, MyTestSuite, 126*481dde66SAndroid Build Coastguard Worker testing::Values(...), 127*481dde66SAndroid Build Coastguard Worker [](const testing::TestParamInfo<MyTestSuite::ParamType>& info) { 128*481dde66SAndroid Build Coastguard Worker // Can use info.param here to generate the test suffix 129*481dde66SAndroid Build Coastguard Worker std::string name = ... 130*481dde66SAndroid Build Coastguard Worker return name; 131*481dde66SAndroid Build Coastguard Worker }); 132*481dde66SAndroid Build Coastguard Worker``` 133*481dde66SAndroid Build Coastguard Worker 134*481dde66SAndroid Build Coastguard WorkerFor more information, see 135*481dde66SAndroid Build Coastguard Worker[Value-Parameterized Tests](../advanced.md#value-parameterized-tests). 136*481dde66SAndroid Build Coastguard Worker 137*481dde66SAndroid Build Coastguard WorkerSee also 138*481dde66SAndroid Build Coastguard Worker[`GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST`](#GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST). 139*481dde66SAndroid Build Coastguard Worker 140*481dde66SAndroid Build Coastguard Worker### TYPED_TEST_SUITE {#TYPED_TEST_SUITE} 141*481dde66SAndroid Build Coastguard Worker 142*481dde66SAndroid Build Coastguard Worker`TYPED_TEST_SUITE(`*`TestFixtureName`*`,`*`Types`*`)` 143*481dde66SAndroid Build Coastguard Worker`TYPED_TEST_SUITE(`*`TestFixtureName`*`,`*`Types`*`,`*`NameGenerator`*`)` 144*481dde66SAndroid Build Coastguard Worker 145*481dde66SAndroid Build Coastguard WorkerDefines a typed test suite based on the test fixture *`TestFixtureName`*. The 146*481dde66SAndroid Build Coastguard Workertest suite name is *`TestFixtureName`*. 147*481dde66SAndroid Build Coastguard Worker 148*481dde66SAndroid Build Coastguard WorkerThe argument *`TestFixtureName`* is a fixture class template, parameterized by a 149*481dde66SAndroid Build Coastguard Workertype, for example: 150*481dde66SAndroid Build Coastguard Worker 151*481dde66SAndroid Build Coastguard Worker```cpp 152*481dde66SAndroid Build Coastguard Workertemplate <typename T> 153*481dde66SAndroid Build Coastguard Workerclass MyFixture : public testing::Test { 154*481dde66SAndroid Build Coastguard Worker public: 155*481dde66SAndroid Build Coastguard Worker ... 156*481dde66SAndroid Build Coastguard Worker using List = std::list<T>; 157*481dde66SAndroid Build Coastguard Worker static T shared_; 158*481dde66SAndroid Build Coastguard Worker T value_; 159*481dde66SAndroid Build Coastguard Worker}; 160*481dde66SAndroid Build Coastguard Worker``` 161*481dde66SAndroid Build Coastguard Worker 162*481dde66SAndroid Build Coastguard WorkerThe argument *`Types`* is a [`Types`](#Types) object representing the list of 163*481dde66SAndroid Build Coastguard Workertypes to run the tests on, for example: 164*481dde66SAndroid Build Coastguard Worker 165*481dde66SAndroid Build Coastguard Worker```cpp 166*481dde66SAndroid Build Coastguard Workerusing MyTypes = ::testing::Types<char, int, unsigned int>; 167*481dde66SAndroid Build Coastguard WorkerTYPED_TEST_SUITE(MyFixture, MyTypes); 168*481dde66SAndroid Build Coastguard Worker``` 169*481dde66SAndroid Build Coastguard Worker 170*481dde66SAndroid Build Coastguard WorkerThe type alias (`using` or `typedef`) is necessary for the `TYPED_TEST_SUITE` 171*481dde66SAndroid Build Coastguard Workermacro to parse correctly. 172*481dde66SAndroid Build Coastguard Worker 173*481dde66SAndroid Build Coastguard WorkerThe optional third argument *`NameGenerator`* allows specifying a class that 174*481dde66SAndroid Build Coastguard Workerexposes a templated static function `GetName(int)`. For example: 175*481dde66SAndroid Build Coastguard Worker 176*481dde66SAndroid Build Coastguard Worker```cpp 177*481dde66SAndroid Build Coastguard Workerclass NameGenerator { 178*481dde66SAndroid Build Coastguard Worker public: 179*481dde66SAndroid Build Coastguard Worker template <typename T> 180*481dde66SAndroid Build Coastguard Worker static std::string GetName(int) { 181*481dde66SAndroid Build Coastguard Worker if constexpr (std::is_same_v<T, char>) return "char"; 182*481dde66SAndroid Build Coastguard Worker if constexpr (std::is_same_v<T, int>) return "int"; 183*481dde66SAndroid Build Coastguard Worker if constexpr (std::is_same_v<T, unsigned int>) return "unsignedInt"; 184*481dde66SAndroid Build Coastguard Worker } 185*481dde66SAndroid Build Coastguard Worker}; 186*481dde66SAndroid Build Coastguard WorkerTYPED_TEST_SUITE(MyFixture, MyTypes, NameGenerator); 187*481dde66SAndroid Build Coastguard Worker``` 188*481dde66SAndroid Build Coastguard Worker 189*481dde66SAndroid Build Coastguard WorkerSee also [`TYPED_TEST`](#TYPED_TEST) and 190*481dde66SAndroid Build Coastguard Worker[Typed Tests](../advanced.md#typed-tests) for more information. 191*481dde66SAndroid Build Coastguard Worker 192*481dde66SAndroid Build Coastguard Worker### TYPED_TEST {#TYPED_TEST} 193*481dde66SAndroid Build Coastguard Worker 194*481dde66SAndroid Build Coastguard Worker<pre> 195*481dde66SAndroid Build Coastguard WorkerTYPED_TEST(<em>TestSuiteName</em>, <em>TestName</em>) { 196*481dde66SAndroid Build Coastguard Worker ... <em>statements</em> ... 197*481dde66SAndroid Build Coastguard Worker} 198*481dde66SAndroid Build Coastguard Worker</pre> 199*481dde66SAndroid Build Coastguard Worker 200*481dde66SAndroid Build Coastguard WorkerDefines an individual typed test named *`TestName`* in the typed test suite 201*481dde66SAndroid Build Coastguard Worker*`TestSuiteName`*. The test suite must be defined with 202*481dde66SAndroid Build Coastguard Worker[`TYPED_TEST_SUITE`](#TYPED_TEST_SUITE). 203*481dde66SAndroid Build Coastguard Worker 204*481dde66SAndroid Build Coastguard WorkerWithin the test body, the special name `TypeParam` refers to the type parameter, 205*481dde66SAndroid Build Coastguard Workerand `TestFixture` refers to the fixture class. See the following example: 206*481dde66SAndroid Build Coastguard Worker 207*481dde66SAndroid Build Coastguard Worker```cpp 208*481dde66SAndroid Build Coastguard WorkerTYPED_TEST(MyFixture, Example) { 209*481dde66SAndroid Build Coastguard Worker // Inside a test, refer to the special name TypeParam to get the type 210*481dde66SAndroid Build Coastguard Worker // parameter. Since we are inside a derived class template, C++ requires 211*481dde66SAndroid Build Coastguard Worker // us to visit the members of MyFixture via 'this'. 212*481dde66SAndroid Build Coastguard Worker TypeParam n = this->value_; 213*481dde66SAndroid Build Coastguard Worker 214*481dde66SAndroid Build Coastguard Worker // To visit static members of the fixture, add the 'TestFixture::' 215*481dde66SAndroid Build Coastguard Worker // prefix. 216*481dde66SAndroid Build Coastguard Worker n += TestFixture::shared_; 217*481dde66SAndroid Build Coastguard Worker 218*481dde66SAndroid Build Coastguard Worker // To refer to typedefs in the fixture, add the 'typename TestFixture::' 219*481dde66SAndroid Build Coastguard Worker // prefix. The 'typename' is required to satisfy the compiler. 220*481dde66SAndroid Build Coastguard Worker typename TestFixture::List values; 221*481dde66SAndroid Build Coastguard Worker 222*481dde66SAndroid Build Coastguard Worker values.push_back(n); 223*481dde66SAndroid Build Coastguard Worker ... 224*481dde66SAndroid Build Coastguard Worker} 225*481dde66SAndroid Build Coastguard Worker``` 226*481dde66SAndroid Build Coastguard Worker 227*481dde66SAndroid Build Coastguard WorkerFor more information, see [Typed Tests](../advanced.md#typed-tests). 228*481dde66SAndroid Build Coastguard Worker 229*481dde66SAndroid Build Coastguard Worker### TYPED_TEST_SUITE_P {#TYPED_TEST_SUITE_P} 230*481dde66SAndroid Build Coastguard Worker 231*481dde66SAndroid Build Coastguard Worker`TYPED_TEST_SUITE_P(`*`TestFixtureName`*`)` 232*481dde66SAndroid Build Coastguard Worker 233*481dde66SAndroid Build Coastguard WorkerDefines a type-parameterized test suite based on the test fixture 234*481dde66SAndroid Build Coastguard Worker*`TestFixtureName`*. The test suite name is *`TestFixtureName`*. 235*481dde66SAndroid Build Coastguard Worker 236*481dde66SAndroid Build Coastguard WorkerThe argument *`TestFixtureName`* is a fixture class template, parameterized by a 237*481dde66SAndroid Build Coastguard Workertype. See [`TYPED_TEST_SUITE`](#TYPED_TEST_SUITE) for an example. 238*481dde66SAndroid Build Coastguard Worker 239*481dde66SAndroid Build Coastguard WorkerSee also [`TYPED_TEST_P`](#TYPED_TEST_P) and 240*481dde66SAndroid Build Coastguard Worker[Type-Parameterized Tests](../advanced.md#type-parameterized-tests) for more 241*481dde66SAndroid Build Coastguard Workerinformation. 242*481dde66SAndroid Build Coastguard Worker 243*481dde66SAndroid Build Coastguard Worker### TYPED_TEST_P {#TYPED_TEST_P} 244*481dde66SAndroid Build Coastguard Worker 245*481dde66SAndroid Build Coastguard Worker<pre> 246*481dde66SAndroid Build Coastguard WorkerTYPED_TEST_P(<em>TestSuiteName</em>, <em>TestName</em>) { 247*481dde66SAndroid Build Coastguard Worker ... <em>statements</em> ... 248*481dde66SAndroid Build Coastguard Worker} 249*481dde66SAndroid Build Coastguard Worker</pre> 250*481dde66SAndroid Build Coastguard Worker 251*481dde66SAndroid Build Coastguard WorkerDefines an individual type-parameterized test named *`TestName`* in the 252*481dde66SAndroid Build Coastguard Workertype-parameterized test suite *`TestSuiteName`*. The test suite must be defined 253*481dde66SAndroid Build Coastguard Workerwith [`TYPED_TEST_SUITE_P`](#TYPED_TEST_SUITE_P). 254*481dde66SAndroid Build Coastguard Worker 255*481dde66SAndroid Build Coastguard WorkerWithin the test body, the special name `TypeParam` refers to the type parameter, 256*481dde66SAndroid Build Coastguard Workerand `TestFixture` refers to the fixture class. See [`TYPED_TEST`](#TYPED_TEST) 257*481dde66SAndroid Build Coastguard Workerfor an example. 258*481dde66SAndroid Build Coastguard Worker 259*481dde66SAndroid Build Coastguard WorkerSee also [`REGISTER_TYPED_TEST_SUITE_P`](#REGISTER_TYPED_TEST_SUITE_P) and 260*481dde66SAndroid Build Coastguard Worker[Type-Parameterized Tests](../advanced.md#type-parameterized-tests) for more 261*481dde66SAndroid Build Coastguard Workerinformation. 262*481dde66SAndroid Build Coastguard Worker 263*481dde66SAndroid Build Coastguard Worker### REGISTER_TYPED_TEST_SUITE_P {#REGISTER_TYPED_TEST_SUITE_P} 264*481dde66SAndroid Build Coastguard Worker 265*481dde66SAndroid Build Coastguard Worker`REGISTER_TYPED_TEST_SUITE_P(`*`TestSuiteName`*`,`*`TestNames...`*`)` 266*481dde66SAndroid Build Coastguard Worker 267*481dde66SAndroid Build Coastguard WorkerRegisters the type-parameterized tests *`TestNames...`* of the test suite 268*481dde66SAndroid Build Coastguard Worker*`TestSuiteName`*. The test suite and tests must be defined with 269*481dde66SAndroid Build Coastguard Worker[`TYPED_TEST_SUITE_P`](#TYPED_TEST_SUITE_P) and [`TYPED_TEST_P`](#TYPED_TEST_P). 270*481dde66SAndroid Build Coastguard Worker 271*481dde66SAndroid Build Coastguard WorkerFor example: 272*481dde66SAndroid Build Coastguard Worker 273*481dde66SAndroid Build Coastguard Worker```cpp 274*481dde66SAndroid Build Coastguard Worker// Define the test suite and tests. 275*481dde66SAndroid Build Coastguard WorkerTYPED_TEST_SUITE_P(MyFixture); 276*481dde66SAndroid Build Coastguard WorkerTYPED_TEST_P(MyFixture, HasPropertyA) { ... } 277*481dde66SAndroid Build Coastguard WorkerTYPED_TEST_P(MyFixture, HasPropertyB) { ... } 278*481dde66SAndroid Build Coastguard Worker 279*481dde66SAndroid Build Coastguard Worker// Register the tests in the test suite. 280*481dde66SAndroid Build Coastguard WorkerREGISTER_TYPED_TEST_SUITE_P(MyFixture, HasPropertyA, HasPropertyB); 281*481dde66SAndroid Build Coastguard Worker``` 282*481dde66SAndroid Build Coastguard Worker 283*481dde66SAndroid Build Coastguard WorkerSee also [`INSTANTIATE_TYPED_TEST_SUITE_P`](#INSTANTIATE_TYPED_TEST_SUITE_P) and 284*481dde66SAndroid Build Coastguard Worker[Type-Parameterized Tests](../advanced.md#type-parameterized-tests) for more 285*481dde66SAndroid Build Coastguard Workerinformation. 286*481dde66SAndroid Build Coastguard Worker 287*481dde66SAndroid Build Coastguard Worker### INSTANTIATE_TYPED_TEST_SUITE_P {#INSTANTIATE_TYPED_TEST_SUITE_P} 288*481dde66SAndroid Build Coastguard Worker 289*481dde66SAndroid Build Coastguard Worker`INSTANTIATE_TYPED_TEST_SUITE_P(`*`InstantiationName`*`,`*`TestSuiteName`*`,`*`Types`*`)` 290*481dde66SAndroid Build Coastguard Worker 291*481dde66SAndroid Build Coastguard WorkerInstantiates the type-parameterized test suite *`TestSuiteName`*. The test suite 292*481dde66SAndroid Build Coastguard Workermust be registered with 293*481dde66SAndroid Build Coastguard Worker[`REGISTER_TYPED_TEST_SUITE_P`](#REGISTER_TYPED_TEST_SUITE_P). 294*481dde66SAndroid Build Coastguard Worker 295*481dde66SAndroid Build Coastguard WorkerThe argument *`InstantiationName`* is a unique name for the instantiation of the 296*481dde66SAndroid Build Coastguard Workertest suite, to distinguish between multiple instantiations. In test output, the 297*481dde66SAndroid Build Coastguard Workerinstantiation name is added as a prefix to the test suite name 298*481dde66SAndroid Build Coastguard Worker*`TestSuiteName`*. If *`InstantiationName`* is empty 299*481dde66SAndroid Build Coastguard Worker(`INSTANTIATE_TYPED_TEST_SUITE_P(, ...)`), no prefix is added. 300*481dde66SAndroid Build Coastguard Worker 301*481dde66SAndroid Build Coastguard WorkerThe argument *`Types`* is a [`Types`](#Types) object representing the list of 302*481dde66SAndroid Build Coastguard Workertypes to run the tests on, for example: 303*481dde66SAndroid Build Coastguard Worker 304*481dde66SAndroid Build Coastguard Worker```cpp 305*481dde66SAndroid Build Coastguard Workerusing MyTypes = ::testing::Types<char, int, unsigned int>; 306*481dde66SAndroid Build Coastguard WorkerINSTANTIATE_TYPED_TEST_SUITE_P(MyInstantiation, MyFixture, MyTypes); 307*481dde66SAndroid Build Coastguard Worker``` 308*481dde66SAndroid Build Coastguard Worker 309*481dde66SAndroid Build Coastguard WorkerThe type alias (`using` or `typedef`) is necessary for the 310*481dde66SAndroid Build Coastguard Worker`INSTANTIATE_TYPED_TEST_SUITE_P` macro to parse correctly. 311*481dde66SAndroid Build Coastguard Worker 312*481dde66SAndroid Build Coastguard WorkerFor more information, see 313*481dde66SAndroid Build Coastguard Worker[Type-Parameterized Tests](../advanced.md#type-parameterized-tests). 314*481dde66SAndroid Build Coastguard Worker 315*481dde66SAndroid Build Coastguard Worker### FRIEND_TEST {#FRIEND_TEST} 316*481dde66SAndroid Build Coastguard Worker 317*481dde66SAndroid Build Coastguard Worker`FRIEND_TEST(`*`TestSuiteName`*`,`*`TestName`*`)` 318*481dde66SAndroid Build Coastguard Worker 319*481dde66SAndroid Build Coastguard WorkerWithin a class body, declares an individual test as a friend of the class, 320*481dde66SAndroid Build Coastguard Workerenabling the test to access private class members. 321*481dde66SAndroid Build Coastguard Worker 322*481dde66SAndroid Build Coastguard WorkerIf the class is defined in a namespace, then in order to be friends of the 323*481dde66SAndroid Build Coastguard Workerclass, test fixtures and tests must be defined in the exact same namespace, 324*481dde66SAndroid Build Coastguard Workerwithout inline or anonymous namespaces. 325*481dde66SAndroid Build Coastguard Worker 326*481dde66SAndroid Build Coastguard WorkerFor example, if the class definition looks like the following: 327*481dde66SAndroid Build Coastguard Worker 328*481dde66SAndroid Build Coastguard Worker```cpp 329*481dde66SAndroid Build Coastguard Workernamespace my_namespace { 330*481dde66SAndroid Build Coastguard Worker 331*481dde66SAndroid Build Coastguard Workerclass MyClass { 332*481dde66SAndroid Build Coastguard Worker friend class MyClassTest; 333*481dde66SAndroid Build Coastguard Worker FRIEND_TEST(MyClassTest, HasPropertyA); 334*481dde66SAndroid Build Coastguard Worker FRIEND_TEST(MyClassTest, HasPropertyB); 335*481dde66SAndroid Build Coastguard Worker ... definition of class MyClass ... 336*481dde66SAndroid Build Coastguard Worker}; 337*481dde66SAndroid Build Coastguard Worker 338*481dde66SAndroid Build Coastguard Worker} // namespace my_namespace 339*481dde66SAndroid Build Coastguard Worker``` 340*481dde66SAndroid Build Coastguard Worker 341*481dde66SAndroid Build Coastguard WorkerThen the test code should look like: 342*481dde66SAndroid Build Coastguard Worker 343*481dde66SAndroid Build Coastguard Worker```cpp 344*481dde66SAndroid Build Coastguard Workernamespace my_namespace { 345*481dde66SAndroid Build Coastguard Worker 346*481dde66SAndroid Build Coastguard Workerclass MyClassTest : public testing::Test { 347*481dde66SAndroid Build Coastguard Worker ... 348*481dde66SAndroid Build Coastguard Worker}; 349*481dde66SAndroid Build Coastguard Worker 350*481dde66SAndroid Build Coastguard WorkerTEST_F(MyClassTest, HasPropertyA) { ... } 351*481dde66SAndroid Build Coastguard WorkerTEST_F(MyClassTest, HasPropertyB) { ... } 352*481dde66SAndroid Build Coastguard Worker 353*481dde66SAndroid Build Coastguard Worker} // namespace my_namespace 354*481dde66SAndroid Build Coastguard Worker``` 355*481dde66SAndroid Build Coastguard Worker 356*481dde66SAndroid Build Coastguard WorkerSee [Testing Private Code](../advanced.md#testing-private-code) for more 357*481dde66SAndroid Build Coastguard Workerinformation. 358*481dde66SAndroid Build Coastguard Worker 359*481dde66SAndroid Build Coastguard Worker### SCOPED_TRACE {#SCOPED_TRACE} 360*481dde66SAndroid Build Coastguard Worker 361*481dde66SAndroid Build Coastguard Worker`SCOPED_TRACE(`*`message`*`)` 362*481dde66SAndroid Build Coastguard Worker 363*481dde66SAndroid Build Coastguard WorkerCauses the current file name, line number, and the given message *`message`* to 364*481dde66SAndroid Build Coastguard Workerbe added to the failure message for each assertion failure that occurs in the 365*481dde66SAndroid Build Coastguard Workerscope. 366*481dde66SAndroid Build Coastguard Worker 367*481dde66SAndroid Build Coastguard WorkerFor more information, see 368*481dde66SAndroid Build Coastguard Worker[Adding Traces to Assertions](../advanced.md#adding-traces-to-assertions). 369*481dde66SAndroid Build Coastguard Worker 370*481dde66SAndroid Build Coastguard WorkerSee also the [`ScopedTrace` class](#ScopedTrace). 371*481dde66SAndroid Build Coastguard Worker 372*481dde66SAndroid Build Coastguard Worker### GTEST_SKIP {#GTEST_SKIP} 373*481dde66SAndroid Build Coastguard Worker 374*481dde66SAndroid Build Coastguard Worker`GTEST_SKIP()` 375*481dde66SAndroid Build Coastguard Worker 376*481dde66SAndroid Build Coastguard WorkerPrevents further test execution at runtime. 377*481dde66SAndroid Build Coastguard Worker 378*481dde66SAndroid Build Coastguard WorkerCan be used in individual test cases or in the `SetUp()` methods of test 379*481dde66SAndroid Build Coastguard Workerenvironments or test fixtures (classes derived from the 380*481dde66SAndroid Build Coastguard Worker[`Environment`](#Environment) or [`Test`](#Test) classes). If used in a global 381*481dde66SAndroid Build Coastguard Workertest environment `SetUp()` method, it skips all tests in the test program. If 382*481dde66SAndroid Build Coastguard Workerused in a test fixture `SetUp()` method, it skips all tests in the corresponding 383*481dde66SAndroid Build Coastguard Workertest suite. 384*481dde66SAndroid Build Coastguard Worker 385*481dde66SAndroid Build Coastguard WorkerSimilar to assertions, `GTEST_SKIP` allows streaming a custom message into it. 386*481dde66SAndroid Build Coastguard Worker 387*481dde66SAndroid Build Coastguard WorkerSee [Skipping Test Execution](../advanced.md#skipping-test-execution) for more 388*481dde66SAndroid Build Coastguard Workerinformation. 389*481dde66SAndroid Build Coastguard Worker 390*481dde66SAndroid Build Coastguard Worker### GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST {#GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST} 391*481dde66SAndroid Build Coastguard Worker 392*481dde66SAndroid Build Coastguard Worker`GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(`*`TestSuiteName`*`)` 393*481dde66SAndroid Build Coastguard Worker 394*481dde66SAndroid Build Coastguard WorkerAllows the value-parameterized test suite *`TestSuiteName`* to be 395*481dde66SAndroid Build Coastguard Workeruninstantiated. 396*481dde66SAndroid Build Coastguard Worker 397*481dde66SAndroid Build Coastguard WorkerBy default, every [`TEST_P`](#TEST_P) call without a corresponding 398*481dde66SAndroid Build Coastguard Worker[`INSTANTIATE_TEST_SUITE_P`](#INSTANTIATE_TEST_SUITE_P) call causes a failing 399*481dde66SAndroid Build Coastguard Workertest in the test suite `GoogleTestVerification`. 400*481dde66SAndroid Build Coastguard Worker`GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST` suppresses this failure for the 401*481dde66SAndroid Build Coastguard Workergiven test suite. 402*481dde66SAndroid Build Coastguard Worker 403*481dde66SAndroid Build Coastguard Worker## Classes and types 404*481dde66SAndroid Build Coastguard Worker 405*481dde66SAndroid Build Coastguard WorkerGoogleTest defines the following classes and types to help with writing tests. 406*481dde66SAndroid Build Coastguard Worker 407*481dde66SAndroid Build Coastguard Worker### AssertionResult {#AssertionResult} 408*481dde66SAndroid Build Coastguard Worker 409*481dde66SAndroid Build Coastguard Worker`testing::AssertionResult` 410*481dde66SAndroid Build Coastguard Worker 411*481dde66SAndroid Build Coastguard WorkerA class for indicating whether an assertion was successful. 412*481dde66SAndroid Build Coastguard Worker 413*481dde66SAndroid Build Coastguard WorkerWhen the assertion wasn't successful, the `AssertionResult` object stores a 414*481dde66SAndroid Build Coastguard Workernon-empty failure message that can be retrieved with the object's `message()` 415*481dde66SAndroid Build Coastguard Workermethod. 416*481dde66SAndroid Build Coastguard Worker 417*481dde66SAndroid Build Coastguard WorkerTo create an instance of this class, use one of the factory functions 418*481dde66SAndroid Build Coastguard Worker[`AssertionSuccess()`](#AssertionSuccess) or 419*481dde66SAndroid Build Coastguard Worker[`AssertionFailure()`](#AssertionFailure). 420*481dde66SAndroid Build Coastguard Worker 421*481dde66SAndroid Build Coastguard Worker### AssertionException {#AssertionException} 422*481dde66SAndroid Build Coastguard Worker 423*481dde66SAndroid Build Coastguard Worker`testing::AssertionException` 424*481dde66SAndroid Build Coastguard Worker 425*481dde66SAndroid Build Coastguard WorkerException which can be thrown from 426*481dde66SAndroid Build Coastguard Worker[`TestEventListener::OnTestPartResult`](#TestEventListener::OnTestPartResult). 427*481dde66SAndroid Build Coastguard Worker 428*481dde66SAndroid Build Coastguard Worker### EmptyTestEventListener {#EmptyTestEventListener} 429*481dde66SAndroid Build Coastguard Worker 430*481dde66SAndroid Build Coastguard Worker`testing::EmptyTestEventListener` 431*481dde66SAndroid Build Coastguard Worker 432*481dde66SAndroid Build Coastguard WorkerProvides an empty implementation of all methods in the 433*481dde66SAndroid Build Coastguard Worker[`TestEventListener`](#TestEventListener) interface, such that a subclass only 434*481dde66SAndroid Build Coastguard Workerneeds to override the methods it cares about. 435*481dde66SAndroid Build Coastguard Worker 436*481dde66SAndroid Build Coastguard Worker### Environment {#Environment} 437*481dde66SAndroid Build Coastguard Worker 438*481dde66SAndroid Build Coastguard Worker`testing::Environment` 439*481dde66SAndroid Build Coastguard Worker 440*481dde66SAndroid Build Coastguard WorkerRepresents a global test environment. See 441*481dde66SAndroid Build Coastguard Worker[Global Set-Up and Tear-Down](../advanced.md#global-set-up-and-tear-down). 442*481dde66SAndroid Build Coastguard Worker 443*481dde66SAndroid Build Coastguard Worker#### Protected Methods {#Environment-protected} 444*481dde66SAndroid Build Coastguard Worker 445*481dde66SAndroid Build Coastguard Worker##### SetUp {#Environment::SetUp} 446*481dde66SAndroid Build Coastguard Worker 447*481dde66SAndroid Build Coastguard Worker`virtual void Environment::SetUp()` 448*481dde66SAndroid Build Coastguard Worker 449*481dde66SAndroid Build Coastguard WorkerOverride this to define how to set up the environment. 450*481dde66SAndroid Build Coastguard Worker 451*481dde66SAndroid Build Coastguard Worker##### TearDown {#Environment::TearDown} 452*481dde66SAndroid Build Coastguard Worker 453*481dde66SAndroid Build Coastguard Worker`virtual void Environment::TearDown()` 454*481dde66SAndroid Build Coastguard Worker 455*481dde66SAndroid Build Coastguard WorkerOverride this to define how to tear down the environment. 456*481dde66SAndroid Build Coastguard Worker 457*481dde66SAndroid Build Coastguard Worker### ScopedTrace {#ScopedTrace} 458*481dde66SAndroid Build Coastguard Worker 459*481dde66SAndroid Build Coastguard Worker`testing::ScopedTrace` 460*481dde66SAndroid Build Coastguard Worker 461*481dde66SAndroid Build Coastguard WorkerAn instance of this class causes a trace to be included in every test failure 462*481dde66SAndroid Build Coastguard Workermessage generated by code in the scope of the lifetime of the `ScopedTrace` 463*481dde66SAndroid Build Coastguard Workerinstance. The effect is undone with the destruction of the instance. 464*481dde66SAndroid Build Coastguard Worker 465*481dde66SAndroid Build Coastguard WorkerThe `ScopedTrace` constructor has the following form: 466*481dde66SAndroid Build Coastguard Worker 467*481dde66SAndroid Build Coastguard Worker```cpp 468*481dde66SAndroid Build Coastguard Workertemplate <typename T> 469*481dde66SAndroid Build Coastguard WorkerScopedTrace(const char* file, int line, const T& message) 470*481dde66SAndroid Build Coastguard Worker``` 471*481dde66SAndroid Build Coastguard Worker 472*481dde66SAndroid Build Coastguard WorkerExample usage: 473*481dde66SAndroid Build Coastguard Worker 474*481dde66SAndroid Build Coastguard Worker```cpp 475*481dde66SAndroid Build Coastguard Workertesting::ScopedTrace trace("file.cc", 123, "message"); 476*481dde66SAndroid Build Coastguard Worker``` 477*481dde66SAndroid Build Coastguard Worker 478*481dde66SAndroid Build Coastguard WorkerThe resulting trace includes the given source file path and line number, and the 479*481dde66SAndroid Build Coastguard Workergiven message. The `message` argument can be anything streamable to 480*481dde66SAndroid Build Coastguard Worker`std::ostream`. 481*481dde66SAndroid Build Coastguard Worker 482*481dde66SAndroid Build Coastguard WorkerSee also [`SCOPED_TRACE`](#SCOPED_TRACE). 483*481dde66SAndroid Build Coastguard Worker 484*481dde66SAndroid Build Coastguard Worker### Test {#Test} 485*481dde66SAndroid Build Coastguard Worker 486*481dde66SAndroid Build Coastguard Worker`testing::Test` 487*481dde66SAndroid Build Coastguard Worker 488*481dde66SAndroid Build Coastguard WorkerThe abstract class that all tests inherit from. `Test` is not copyable. 489*481dde66SAndroid Build Coastguard Worker 490*481dde66SAndroid Build Coastguard Worker#### Public Methods {#Test-public} 491*481dde66SAndroid Build Coastguard Worker 492*481dde66SAndroid Build Coastguard Worker##### SetUpTestSuite {#Test::SetUpTestSuite} 493*481dde66SAndroid Build Coastguard Worker 494*481dde66SAndroid Build Coastguard Worker`static void Test::SetUpTestSuite()` 495*481dde66SAndroid Build Coastguard Worker 496*481dde66SAndroid Build Coastguard WorkerPerforms shared setup for all tests in the test suite. GoogleTest calls 497*481dde66SAndroid Build Coastguard Worker`SetUpTestSuite()` before running the first test in the test suite. 498*481dde66SAndroid Build Coastguard Worker 499*481dde66SAndroid Build Coastguard Worker##### TearDownTestSuite {#Test::TearDownTestSuite} 500*481dde66SAndroid Build Coastguard Worker 501*481dde66SAndroid Build Coastguard Worker`static void Test::TearDownTestSuite()` 502*481dde66SAndroid Build Coastguard Worker 503*481dde66SAndroid Build Coastguard WorkerPerforms shared teardown for all tests in the test suite. GoogleTest calls 504*481dde66SAndroid Build Coastguard Worker`TearDownTestSuite()` after running the last test in the test suite. 505*481dde66SAndroid Build Coastguard Worker 506*481dde66SAndroid Build Coastguard Worker##### HasFatalFailure {#Test::HasFatalFailure} 507*481dde66SAndroid Build Coastguard Worker 508*481dde66SAndroid Build Coastguard Worker`static bool Test::HasFatalFailure()` 509*481dde66SAndroid Build Coastguard Worker 510*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the current test has a fatal failure. 511*481dde66SAndroid Build Coastguard Worker 512*481dde66SAndroid Build Coastguard Worker##### HasNonfatalFailure {#Test::HasNonfatalFailure} 513*481dde66SAndroid Build Coastguard Worker 514*481dde66SAndroid Build Coastguard Worker`static bool Test::HasNonfatalFailure()` 515*481dde66SAndroid Build Coastguard Worker 516*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the current test has a nonfatal failure. 517*481dde66SAndroid Build Coastguard Worker 518*481dde66SAndroid Build Coastguard Worker##### HasFailure {#Test::HasFailure} 519*481dde66SAndroid Build Coastguard Worker 520*481dde66SAndroid Build Coastguard Worker`static bool Test::HasFailure()` 521*481dde66SAndroid Build Coastguard Worker 522*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the current test has any failure, either fatal or 523*481dde66SAndroid Build Coastguard Workernonfatal. 524*481dde66SAndroid Build Coastguard Worker 525*481dde66SAndroid Build Coastguard Worker##### IsSkipped {#Test::IsSkipped} 526*481dde66SAndroid Build Coastguard Worker 527*481dde66SAndroid Build Coastguard Worker`static bool Test::IsSkipped()` 528*481dde66SAndroid Build Coastguard Worker 529*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the current test was skipped. 530*481dde66SAndroid Build Coastguard Worker 531*481dde66SAndroid Build Coastguard Worker##### RecordProperty {#Test::RecordProperty} 532*481dde66SAndroid Build Coastguard Worker 533*481dde66SAndroid Build Coastguard Worker`static void Test::RecordProperty(const std::string& key, const std::string& 534*481dde66SAndroid Build Coastguard Workervalue)` \ 535*481dde66SAndroid Build Coastguard Worker`static void Test::RecordProperty(const std::string& key, int value)` 536*481dde66SAndroid Build Coastguard Worker 537*481dde66SAndroid Build Coastguard WorkerLogs a property for the current test, test suite, or entire invocation of the 538*481dde66SAndroid Build Coastguard Workertest program. Only the last value for a given key is logged. 539*481dde66SAndroid Build Coastguard Worker 540*481dde66SAndroid Build Coastguard WorkerThe key must be a valid XML attribute name, and cannot conflict with the ones 541*481dde66SAndroid Build Coastguard Workeralready used by GoogleTest (`name`, `file`, `line`, `status`, `time`, 542*481dde66SAndroid Build Coastguard Worker`classname`, `type_param`, and `value_param`). 543*481dde66SAndroid Build Coastguard Worker 544*481dde66SAndroid Build Coastguard Worker`RecordProperty` is `public static` so it can be called from utility functions 545*481dde66SAndroid Build Coastguard Workerthat are not members of the test fixture. 546*481dde66SAndroid Build Coastguard Worker 547*481dde66SAndroid Build Coastguard WorkerCalls to `RecordProperty` made during the lifespan of the test (from the moment 548*481dde66SAndroid Build Coastguard Workerits constructor starts to the moment its destructor finishes) are output in XML 549*481dde66SAndroid Build Coastguard Workeras attributes of the `<testcase>` element. Properties recorded from a fixture's 550*481dde66SAndroid Build Coastguard Worker`SetUpTestSuite` or `TearDownTestSuite` methods are logged as attributes of the 551*481dde66SAndroid Build Coastguard Workercorresponding `<testsuite>` element. Calls to `RecordProperty` made in the 552*481dde66SAndroid Build Coastguard Workerglobal context (before or after invocation of `RUN_ALL_TESTS` or from the 553*481dde66SAndroid Build Coastguard Worker`SetUp`/`TearDown` methods of registered `Environment` objects) are output as 554*481dde66SAndroid Build Coastguard Workerattributes of the `<testsuites>` element. 555*481dde66SAndroid Build Coastguard Worker 556*481dde66SAndroid Build Coastguard Worker#### Protected Methods {#Test-protected} 557*481dde66SAndroid Build Coastguard Worker 558*481dde66SAndroid Build Coastguard Worker##### SetUp {#Test::SetUp} 559*481dde66SAndroid Build Coastguard Worker 560*481dde66SAndroid Build Coastguard Worker`virtual void Test::SetUp()` 561*481dde66SAndroid Build Coastguard Worker 562*481dde66SAndroid Build Coastguard WorkerOverride this to perform test fixture setup. GoogleTest calls `SetUp()` before 563*481dde66SAndroid Build Coastguard Workerrunning each individual test. 564*481dde66SAndroid Build Coastguard Worker 565*481dde66SAndroid Build Coastguard Worker##### TearDown {#Test::TearDown} 566*481dde66SAndroid Build Coastguard Worker 567*481dde66SAndroid Build Coastguard Worker`virtual void Test::TearDown()` 568*481dde66SAndroid Build Coastguard Worker 569*481dde66SAndroid Build Coastguard WorkerOverride this to perform test fixture teardown. GoogleTest calls `TearDown()` 570*481dde66SAndroid Build Coastguard Workerafter running each individual test. 571*481dde66SAndroid Build Coastguard Worker 572*481dde66SAndroid Build Coastguard Worker### TestWithParam {#TestWithParam} 573*481dde66SAndroid Build Coastguard Worker 574*481dde66SAndroid Build Coastguard Worker`testing::TestWithParam<T>` 575*481dde66SAndroid Build Coastguard Worker 576*481dde66SAndroid Build Coastguard WorkerA convenience class which inherits from both [`Test`](#Test) and 577*481dde66SAndroid Build Coastguard Worker[`WithParamInterface<T>`](#WithParamInterface). 578*481dde66SAndroid Build Coastguard Worker 579*481dde66SAndroid Build Coastguard Worker### TestSuite {#TestSuite} 580*481dde66SAndroid Build Coastguard Worker 581*481dde66SAndroid Build Coastguard WorkerRepresents a test suite. `TestSuite` is not copyable. 582*481dde66SAndroid Build Coastguard Worker 583*481dde66SAndroid Build Coastguard Worker#### Public Methods {#TestSuite-public} 584*481dde66SAndroid Build Coastguard Worker 585*481dde66SAndroid Build Coastguard Worker##### name {#TestSuite::name} 586*481dde66SAndroid Build Coastguard Worker 587*481dde66SAndroid Build Coastguard Worker`const char* TestSuite::name() const` 588*481dde66SAndroid Build Coastguard Worker 589*481dde66SAndroid Build Coastguard WorkerGets the name of the test suite. 590*481dde66SAndroid Build Coastguard Worker 591*481dde66SAndroid Build Coastguard Worker##### type_param {#TestSuite::type_param} 592*481dde66SAndroid Build Coastguard Worker 593*481dde66SAndroid Build Coastguard Worker`const char* TestSuite::type_param() const` 594*481dde66SAndroid Build Coastguard Worker 595*481dde66SAndroid Build Coastguard WorkerReturns the name of the parameter type, or `NULL` if this is not a typed or 596*481dde66SAndroid Build Coastguard Workertype-parameterized test suite. See [Typed Tests](../advanced.md#typed-tests) and 597*481dde66SAndroid Build Coastguard Worker[Type-Parameterized Tests](../advanced.md#type-parameterized-tests). 598*481dde66SAndroid Build Coastguard Worker 599*481dde66SAndroid Build Coastguard Worker##### should_run {#TestSuite::should_run} 600*481dde66SAndroid Build Coastguard Worker 601*481dde66SAndroid Build Coastguard Worker`bool TestSuite::should_run() const` 602*481dde66SAndroid Build Coastguard Worker 603*481dde66SAndroid Build Coastguard WorkerReturns true if any test in this test suite should run. 604*481dde66SAndroid Build Coastguard Worker 605*481dde66SAndroid Build Coastguard Worker##### successful_test_count {#TestSuite::successful_test_count} 606*481dde66SAndroid Build Coastguard Worker 607*481dde66SAndroid Build Coastguard Worker`int TestSuite::successful_test_count() const` 608*481dde66SAndroid Build Coastguard Worker 609*481dde66SAndroid Build Coastguard WorkerGets the number of successful tests in this test suite. 610*481dde66SAndroid Build Coastguard Worker 611*481dde66SAndroid Build Coastguard Worker##### skipped_test_count {#TestSuite::skipped_test_count} 612*481dde66SAndroid Build Coastguard Worker 613*481dde66SAndroid Build Coastguard Worker`int TestSuite::skipped_test_count() const` 614*481dde66SAndroid Build Coastguard Worker 615*481dde66SAndroid Build Coastguard WorkerGets the number of skipped tests in this test suite. 616*481dde66SAndroid Build Coastguard Worker 617*481dde66SAndroid Build Coastguard Worker##### failed_test_count {#TestSuite::failed_test_count} 618*481dde66SAndroid Build Coastguard Worker 619*481dde66SAndroid Build Coastguard Worker`int TestSuite::failed_test_count() const` 620*481dde66SAndroid Build Coastguard Worker 621*481dde66SAndroid Build Coastguard WorkerGets the number of failed tests in this test suite. 622*481dde66SAndroid Build Coastguard Worker 623*481dde66SAndroid Build Coastguard Worker##### reportable_disabled_test_count {#TestSuite::reportable_disabled_test_count} 624*481dde66SAndroid Build Coastguard Worker 625*481dde66SAndroid Build Coastguard Worker`int TestSuite::reportable_disabled_test_count() const` 626*481dde66SAndroid Build Coastguard Worker 627*481dde66SAndroid Build Coastguard WorkerGets the number of disabled tests that will be reported in the XML report. 628*481dde66SAndroid Build Coastguard Worker 629*481dde66SAndroid Build Coastguard Worker##### disabled_test_count {#TestSuite::disabled_test_count} 630*481dde66SAndroid Build Coastguard Worker 631*481dde66SAndroid Build Coastguard Worker`int TestSuite::disabled_test_count() const` 632*481dde66SAndroid Build Coastguard Worker 633*481dde66SAndroid Build Coastguard WorkerGets the number of disabled tests in this test suite. 634*481dde66SAndroid Build Coastguard Worker 635*481dde66SAndroid Build Coastguard Worker##### reportable_test_count {#TestSuite::reportable_test_count} 636*481dde66SAndroid Build Coastguard Worker 637*481dde66SAndroid Build Coastguard Worker`int TestSuite::reportable_test_count() const` 638*481dde66SAndroid Build Coastguard Worker 639*481dde66SAndroid Build Coastguard WorkerGets the number of tests to be printed in the XML report. 640*481dde66SAndroid Build Coastguard Worker 641*481dde66SAndroid Build Coastguard Worker##### test_to_run_count {#TestSuite::test_to_run_count} 642*481dde66SAndroid Build Coastguard Worker 643*481dde66SAndroid Build Coastguard Worker`int TestSuite::test_to_run_count() const` 644*481dde66SAndroid Build Coastguard Worker 645*481dde66SAndroid Build Coastguard WorkerGet the number of tests in this test suite that should run. 646*481dde66SAndroid Build Coastguard Worker 647*481dde66SAndroid Build Coastguard Worker##### total_test_count {#TestSuite::total_test_count} 648*481dde66SAndroid Build Coastguard Worker 649*481dde66SAndroid Build Coastguard Worker`int TestSuite::total_test_count() const` 650*481dde66SAndroid Build Coastguard Worker 651*481dde66SAndroid Build Coastguard WorkerGets the number of all tests in this test suite. 652*481dde66SAndroid Build Coastguard Worker 653*481dde66SAndroid Build Coastguard Worker##### Passed {#TestSuite::Passed} 654*481dde66SAndroid Build Coastguard Worker 655*481dde66SAndroid Build Coastguard Worker`bool TestSuite::Passed() const` 656*481dde66SAndroid Build Coastguard Worker 657*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the test suite passed. 658*481dde66SAndroid Build Coastguard Worker 659*481dde66SAndroid Build Coastguard Worker##### Failed {#TestSuite::Failed} 660*481dde66SAndroid Build Coastguard Worker 661*481dde66SAndroid Build Coastguard Worker`bool TestSuite::Failed() const` 662*481dde66SAndroid Build Coastguard Worker 663*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the test suite failed. 664*481dde66SAndroid Build Coastguard Worker 665*481dde66SAndroid Build Coastguard Worker##### elapsed_time {#TestSuite::elapsed_time} 666*481dde66SAndroid Build Coastguard Worker 667*481dde66SAndroid Build Coastguard Worker`TimeInMillis TestSuite::elapsed_time() const` 668*481dde66SAndroid Build Coastguard Worker 669*481dde66SAndroid Build Coastguard WorkerReturns the elapsed time, in milliseconds. 670*481dde66SAndroid Build Coastguard Worker 671*481dde66SAndroid Build Coastguard Worker##### start_timestamp {#TestSuite::start_timestamp} 672*481dde66SAndroid Build Coastguard Worker 673*481dde66SAndroid Build Coastguard Worker`TimeInMillis TestSuite::start_timestamp() const` 674*481dde66SAndroid Build Coastguard Worker 675*481dde66SAndroid Build Coastguard WorkerGets the time of the test suite start, in ms from the start of the UNIX epoch. 676*481dde66SAndroid Build Coastguard Worker 677*481dde66SAndroid Build Coastguard Worker##### GetTestInfo {#TestSuite::GetTestInfo} 678*481dde66SAndroid Build Coastguard Worker 679*481dde66SAndroid Build Coastguard Worker`const TestInfo* TestSuite::GetTestInfo(int i) const` 680*481dde66SAndroid Build Coastguard Worker 681*481dde66SAndroid Build Coastguard WorkerReturns the [`TestInfo`](#TestInfo) for the `i`-th test among all the tests. `i` 682*481dde66SAndroid Build Coastguard Workercan range from 0 to `total_test_count() - 1`. If `i` is not in that range, 683*481dde66SAndroid Build Coastguard Workerreturns `NULL`. 684*481dde66SAndroid Build Coastguard Worker 685*481dde66SAndroid Build Coastguard Worker##### ad_hoc_test_result {#TestSuite::ad_hoc_test_result} 686*481dde66SAndroid Build Coastguard Worker 687*481dde66SAndroid Build Coastguard Worker`const TestResult& TestSuite::ad_hoc_test_result() const` 688*481dde66SAndroid Build Coastguard Worker 689*481dde66SAndroid Build Coastguard WorkerReturns the [`TestResult`](#TestResult) that holds test properties recorded 690*481dde66SAndroid Build Coastguard Workerduring execution of `SetUpTestSuite` and `TearDownTestSuite`. 691*481dde66SAndroid Build Coastguard Worker 692*481dde66SAndroid Build Coastguard Worker### TestInfo {#TestInfo} 693*481dde66SAndroid Build Coastguard Worker 694*481dde66SAndroid Build Coastguard Worker`testing::TestInfo` 695*481dde66SAndroid Build Coastguard Worker 696*481dde66SAndroid Build Coastguard WorkerStores information about a test. 697*481dde66SAndroid Build Coastguard Worker 698*481dde66SAndroid Build Coastguard Worker#### Public Methods {#TestInfo-public} 699*481dde66SAndroid Build Coastguard Worker 700*481dde66SAndroid Build Coastguard Worker##### test_suite_name {#TestInfo::test_suite_name} 701*481dde66SAndroid Build Coastguard Worker 702*481dde66SAndroid Build Coastguard Worker`const char* TestInfo::test_suite_name() const` 703*481dde66SAndroid Build Coastguard Worker 704*481dde66SAndroid Build Coastguard WorkerReturns the test suite name. 705*481dde66SAndroid Build Coastguard Worker 706*481dde66SAndroid Build Coastguard Worker##### name {#TestInfo::name} 707*481dde66SAndroid Build Coastguard Worker 708*481dde66SAndroid Build Coastguard Worker`const char* TestInfo::name() const` 709*481dde66SAndroid Build Coastguard Worker 710*481dde66SAndroid Build Coastguard WorkerReturns the test name. 711*481dde66SAndroid Build Coastguard Worker 712*481dde66SAndroid Build Coastguard Worker##### type_param {#TestInfo::type_param} 713*481dde66SAndroid Build Coastguard Worker 714*481dde66SAndroid Build Coastguard Worker`const char* TestInfo::type_param() const` 715*481dde66SAndroid Build Coastguard Worker 716*481dde66SAndroid Build Coastguard WorkerReturns the name of the parameter type, or `NULL` if this is not a typed or 717*481dde66SAndroid Build Coastguard Workertype-parameterized test. See [Typed Tests](../advanced.md#typed-tests) and 718*481dde66SAndroid Build Coastguard Worker[Type-Parameterized Tests](../advanced.md#type-parameterized-tests). 719*481dde66SAndroid Build Coastguard Worker 720*481dde66SAndroid Build Coastguard Worker##### value_param {#TestInfo::value_param} 721*481dde66SAndroid Build Coastguard Worker 722*481dde66SAndroid Build Coastguard Worker`const char* TestInfo::value_param() const` 723*481dde66SAndroid Build Coastguard Worker 724*481dde66SAndroid Build Coastguard WorkerReturns the text representation of the value parameter, or `NULL` if this is not 725*481dde66SAndroid Build Coastguard Workera value-parameterized test. See 726*481dde66SAndroid Build Coastguard Worker[Value-Parameterized Tests](../advanced.md#value-parameterized-tests). 727*481dde66SAndroid Build Coastguard Worker 728*481dde66SAndroid Build Coastguard Worker##### file {#TestInfo::file} 729*481dde66SAndroid Build Coastguard Worker 730*481dde66SAndroid Build Coastguard Worker`const char* TestInfo::file() const` 731*481dde66SAndroid Build Coastguard Worker 732*481dde66SAndroid Build Coastguard WorkerReturns the file name where this test is defined. 733*481dde66SAndroid Build Coastguard Worker 734*481dde66SAndroid Build Coastguard Worker##### line {#TestInfo::line} 735*481dde66SAndroid Build Coastguard Worker 736*481dde66SAndroid Build Coastguard Worker`int TestInfo::line() const` 737*481dde66SAndroid Build Coastguard Worker 738*481dde66SAndroid Build Coastguard WorkerReturns the line where this test is defined. 739*481dde66SAndroid Build Coastguard Worker 740*481dde66SAndroid Build Coastguard Worker##### is_in_another_shard {#TestInfo::is_in_another_shard} 741*481dde66SAndroid Build Coastguard Worker 742*481dde66SAndroid Build Coastguard Worker`bool TestInfo::is_in_another_shard() const` 743*481dde66SAndroid Build Coastguard Worker 744*481dde66SAndroid Build Coastguard WorkerReturns true if this test should not be run because it's in another shard. 745*481dde66SAndroid Build Coastguard Worker 746*481dde66SAndroid Build Coastguard Worker##### should_run {#TestInfo::should_run} 747*481dde66SAndroid Build Coastguard Worker 748*481dde66SAndroid Build Coastguard Worker`bool TestInfo::should_run() const` 749*481dde66SAndroid Build Coastguard Worker 750*481dde66SAndroid Build Coastguard WorkerReturns true if this test should run, that is if the test is not disabled (or it 751*481dde66SAndroid Build Coastguard Workeris disabled but the `also_run_disabled_tests` flag has been specified) and its 752*481dde66SAndroid Build Coastguard Workerfull name matches the user-specified filter. 753*481dde66SAndroid Build Coastguard Worker 754*481dde66SAndroid Build Coastguard WorkerGoogleTest allows the user to filter the tests by their full names. Only the 755*481dde66SAndroid Build Coastguard Workertests that match the filter will run. See 756*481dde66SAndroid Build Coastguard Worker[Running a Subset of the Tests](../advanced.md#running-a-subset-of-the-tests) 757*481dde66SAndroid Build Coastguard Workerfor more information. 758*481dde66SAndroid Build Coastguard Worker 759*481dde66SAndroid Build Coastguard Worker##### is_reportable {#TestInfo::is_reportable} 760*481dde66SAndroid Build Coastguard Worker 761*481dde66SAndroid Build Coastguard Worker`bool TestInfo::is_reportable() const` 762*481dde66SAndroid Build Coastguard Worker 763*481dde66SAndroid Build Coastguard WorkerReturns true if and only if this test will appear in the XML report. 764*481dde66SAndroid Build Coastguard Worker 765*481dde66SAndroid Build Coastguard Worker##### result {#TestInfo::result} 766*481dde66SAndroid Build Coastguard Worker 767*481dde66SAndroid Build Coastguard Worker`const TestResult* TestInfo::result() const` 768*481dde66SAndroid Build Coastguard Worker 769*481dde66SAndroid Build Coastguard WorkerReturns the result of the test. See [`TestResult`](#TestResult). 770*481dde66SAndroid Build Coastguard Worker 771*481dde66SAndroid Build Coastguard Worker### TestParamInfo {#TestParamInfo} 772*481dde66SAndroid Build Coastguard Worker 773*481dde66SAndroid Build Coastguard Worker`testing::TestParamInfo<T>` 774*481dde66SAndroid Build Coastguard Worker 775*481dde66SAndroid Build Coastguard WorkerDescribes a parameter to a value-parameterized test. The type `T` is the type of 776*481dde66SAndroid Build Coastguard Workerthe parameter. 777*481dde66SAndroid Build Coastguard Worker 778*481dde66SAndroid Build Coastguard WorkerContains the fields `param` and `index` which hold the value of the parameter 779*481dde66SAndroid Build Coastguard Workerand its integer index respectively. 780*481dde66SAndroid Build Coastguard Worker 781*481dde66SAndroid Build Coastguard Worker### UnitTest {#UnitTest} 782*481dde66SAndroid Build Coastguard Worker 783*481dde66SAndroid Build Coastguard Worker`testing::UnitTest` 784*481dde66SAndroid Build Coastguard Worker 785*481dde66SAndroid Build Coastguard WorkerThis class contains information about the test program. 786*481dde66SAndroid Build Coastguard Worker 787*481dde66SAndroid Build Coastguard Worker`UnitTest` is a singleton class. The only instance is created when 788*481dde66SAndroid Build Coastguard Worker`UnitTest::GetInstance()` is first called. This instance is never deleted. 789*481dde66SAndroid Build Coastguard Worker 790*481dde66SAndroid Build Coastguard Worker`UnitTest` is not copyable. 791*481dde66SAndroid Build Coastguard Worker 792*481dde66SAndroid Build Coastguard Worker#### Public Methods {#UnitTest-public} 793*481dde66SAndroid Build Coastguard Worker 794*481dde66SAndroid Build Coastguard Worker##### GetInstance {#UnitTest::GetInstance} 795*481dde66SAndroid Build Coastguard Worker 796*481dde66SAndroid Build Coastguard Worker`static UnitTest* UnitTest::GetInstance()` 797*481dde66SAndroid Build Coastguard Worker 798*481dde66SAndroid Build Coastguard WorkerGets the singleton `UnitTest` object. The first time this method is called, a 799*481dde66SAndroid Build Coastguard Worker`UnitTest` object is constructed and returned. Consecutive calls will return the 800*481dde66SAndroid Build Coastguard Workersame object. 801*481dde66SAndroid Build Coastguard Worker 802*481dde66SAndroid Build Coastguard Worker##### original_working_dir {#UnitTest::original_working_dir} 803*481dde66SAndroid Build Coastguard Worker 804*481dde66SAndroid Build Coastguard Worker`const char* UnitTest::original_working_dir() const` 805*481dde66SAndroid Build Coastguard Worker 806*481dde66SAndroid Build Coastguard WorkerReturns the working directory when the first [`TEST()`](#TEST) or 807*481dde66SAndroid Build Coastguard Worker[`TEST_F()`](#TEST_F) was executed. The `UnitTest` object owns the string. 808*481dde66SAndroid Build Coastguard Worker 809*481dde66SAndroid Build Coastguard Worker##### current_test_suite {#UnitTest::current_test_suite} 810*481dde66SAndroid Build Coastguard Worker 811*481dde66SAndroid Build Coastguard Worker`const TestSuite* UnitTest::current_test_suite() const` 812*481dde66SAndroid Build Coastguard Worker 813*481dde66SAndroid Build Coastguard WorkerReturns the [`TestSuite`](#TestSuite) object for the test that's currently 814*481dde66SAndroid Build Coastguard Workerrunning, or `NULL` if no test is running. 815*481dde66SAndroid Build Coastguard Worker 816*481dde66SAndroid Build Coastguard Worker##### current_test_info {#UnitTest::current_test_info} 817*481dde66SAndroid Build Coastguard Worker 818*481dde66SAndroid Build Coastguard Worker`const TestInfo* UnitTest::current_test_info() const` 819*481dde66SAndroid Build Coastguard Worker 820*481dde66SAndroid Build Coastguard WorkerReturns the [`TestInfo`](#TestInfo) object for the test that's currently 821*481dde66SAndroid Build Coastguard Workerrunning, or `NULL` if no test is running. 822*481dde66SAndroid Build Coastguard Worker 823*481dde66SAndroid Build Coastguard Worker##### random_seed {#UnitTest::random_seed} 824*481dde66SAndroid Build Coastguard Worker 825*481dde66SAndroid Build Coastguard Worker`int UnitTest::random_seed() const` 826*481dde66SAndroid Build Coastguard Worker 827*481dde66SAndroid Build Coastguard WorkerReturns the random seed used at the start of the current test run. 828*481dde66SAndroid Build Coastguard Worker 829*481dde66SAndroid Build Coastguard Worker##### successful_test_suite_count {#UnitTest::successful_test_suite_count} 830*481dde66SAndroid Build Coastguard Worker 831*481dde66SAndroid Build Coastguard Worker`int UnitTest::successful_test_suite_count() const` 832*481dde66SAndroid Build Coastguard Worker 833*481dde66SAndroid Build Coastguard WorkerGets the number of successful test suites. 834*481dde66SAndroid Build Coastguard Worker 835*481dde66SAndroid Build Coastguard Worker##### failed_test_suite_count {#UnitTest::failed_test_suite_count} 836*481dde66SAndroid Build Coastguard Worker 837*481dde66SAndroid Build Coastguard Worker`int UnitTest::failed_test_suite_count() const` 838*481dde66SAndroid Build Coastguard Worker 839*481dde66SAndroid Build Coastguard WorkerGets the number of failed test suites. 840*481dde66SAndroid Build Coastguard Worker 841*481dde66SAndroid Build Coastguard Worker##### total_test_suite_count {#UnitTest::total_test_suite_count} 842*481dde66SAndroid Build Coastguard Worker 843*481dde66SAndroid Build Coastguard Worker`int UnitTest::total_test_suite_count() const` 844*481dde66SAndroid Build Coastguard Worker 845*481dde66SAndroid Build Coastguard WorkerGets the number of all test suites. 846*481dde66SAndroid Build Coastguard Worker 847*481dde66SAndroid Build Coastguard Worker##### test_suite_to_run_count {#UnitTest::test_suite_to_run_count} 848*481dde66SAndroid Build Coastguard Worker 849*481dde66SAndroid Build Coastguard Worker`int UnitTest::test_suite_to_run_count() const` 850*481dde66SAndroid Build Coastguard Worker 851*481dde66SAndroid Build Coastguard WorkerGets the number of all test suites that contain at least one test that should 852*481dde66SAndroid Build Coastguard Workerrun. 853*481dde66SAndroid Build Coastguard Worker 854*481dde66SAndroid Build Coastguard Worker##### successful_test_count {#UnitTest::successful_test_count} 855*481dde66SAndroid Build Coastguard Worker 856*481dde66SAndroid Build Coastguard Worker`int UnitTest::successful_test_count() const` 857*481dde66SAndroid Build Coastguard Worker 858*481dde66SAndroid Build Coastguard WorkerGets the number of successful tests. 859*481dde66SAndroid Build Coastguard Worker 860*481dde66SAndroid Build Coastguard Worker##### skipped_test_count {#UnitTest::skipped_test_count} 861*481dde66SAndroid Build Coastguard Worker 862*481dde66SAndroid Build Coastguard Worker`int UnitTest::skipped_test_count() const` 863*481dde66SAndroid Build Coastguard Worker 864*481dde66SAndroid Build Coastguard WorkerGets the number of skipped tests. 865*481dde66SAndroid Build Coastguard Worker 866*481dde66SAndroid Build Coastguard Worker##### failed_test_count {#UnitTest::failed_test_count} 867*481dde66SAndroid Build Coastguard Worker 868*481dde66SAndroid Build Coastguard Worker`int UnitTest::failed_test_count() const` 869*481dde66SAndroid Build Coastguard Worker 870*481dde66SAndroid Build Coastguard WorkerGets the number of failed tests. 871*481dde66SAndroid Build Coastguard Worker 872*481dde66SAndroid Build Coastguard Worker##### reportable_disabled_test_count {#UnitTest::reportable_disabled_test_count} 873*481dde66SAndroid Build Coastguard Worker 874*481dde66SAndroid Build Coastguard Worker`int UnitTest::reportable_disabled_test_count() const` 875*481dde66SAndroid Build Coastguard Worker 876*481dde66SAndroid Build Coastguard WorkerGets the number of disabled tests that will be reported in the XML report. 877*481dde66SAndroid Build Coastguard Worker 878*481dde66SAndroid Build Coastguard Worker##### disabled_test_count {#UnitTest::disabled_test_count} 879*481dde66SAndroid Build Coastguard Worker 880*481dde66SAndroid Build Coastguard Worker`int UnitTest::disabled_test_count() const` 881*481dde66SAndroid Build Coastguard Worker 882*481dde66SAndroid Build Coastguard WorkerGets the number of disabled tests. 883*481dde66SAndroid Build Coastguard Worker 884*481dde66SAndroid Build Coastguard Worker##### reportable_test_count {#UnitTest::reportable_test_count} 885*481dde66SAndroid Build Coastguard Worker 886*481dde66SAndroid Build Coastguard Worker`int UnitTest::reportable_test_count() const` 887*481dde66SAndroid Build Coastguard Worker 888*481dde66SAndroid Build Coastguard WorkerGets the number of tests to be printed in the XML report. 889*481dde66SAndroid Build Coastguard Worker 890*481dde66SAndroid Build Coastguard Worker##### total_test_count {#UnitTest::total_test_count} 891*481dde66SAndroid Build Coastguard Worker 892*481dde66SAndroid Build Coastguard Worker`int UnitTest::total_test_count() const` 893*481dde66SAndroid Build Coastguard Worker 894*481dde66SAndroid Build Coastguard WorkerGets the number of all tests. 895*481dde66SAndroid Build Coastguard Worker 896*481dde66SAndroid Build Coastguard Worker##### test_to_run_count {#UnitTest::test_to_run_count} 897*481dde66SAndroid Build Coastguard Worker 898*481dde66SAndroid Build Coastguard Worker`int UnitTest::test_to_run_count() const` 899*481dde66SAndroid Build Coastguard Worker 900*481dde66SAndroid Build Coastguard WorkerGets the number of tests that should run. 901*481dde66SAndroid Build Coastguard Worker 902*481dde66SAndroid Build Coastguard Worker##### start_timestamp {#UnitTest::start_timestamp} 903*481dde66SAndroid Build Coastguard Worker 904*481dde66SAndroid Build Coastguard Worker`TimeInMillis UnitTest::start_timestamp() const` 905*481dde66SAndroid Build Coastguard Worker 906*481dde66SAndroid Build Coastguard WorkerGets the time of the test program start, in ms from the start of the UNIX epoch. 907*481dde66SAndroid Build Coastguard Worker 908*481dde66SAndroid Build Coastguard Worker##### elapsed_time {#UnitTest::elapsed_time} 909*481dde66SAndroid Build Coastguard Worker 910*481dde66SAndroid Build Coastguard Worker`TimeInMillis UnitTest::elapsed_time() const` 911*481dde66SAndroid Build Coastguard Worker 912*481dde66SAndroid Build Coastguard WorkerGets the elapsed time, in milliseconds. 913*481dde66SAndroid Build Coastguard Worker 914*481dde66SAndroid Build Coastguard Worker##### Passed {#UnitTest::Passed} 915*481dde66SAndroid Build Coastguard Worker 916*481dde66SAndroid Build Coastguard Worker`bool UnitTest::Passed() const` 917*481dde66SAndroid Build Coastguard Worker 918*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the unit test passed (i.e. all test suites passed). 919*481dde66SAndroid Build Coastguard Worker 920*481dde66SAndroid Build Coastguard Worker##### Failed {#UnitTest::Failed} 921*481dde66SAndroid Build Coastguard Worker 922*481dde66SAndroid Build Coastguard Worker`bool UnitTest::Failed() const` 923*481dde66SAndroid Build Coastguard Worker 924*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the unit test failed (i.e. some test suite failed or 925*481dde66SAndroid Build Coastguard Workersomething outside of all tests failed). 926*481dde66SAndroid Build Coastguard Worker 927*481dde66SAndroid Build Coastguard Worker##### GetTestSuite {#UnitTest::GetTestSuite} 928*481dde66SAndroid Build Coastguard Worker 929*481dde66SAndroid Build Coastguard Worker`const TestSuite* UnitTest::GetTestSuite(int i) const` 930*481dde66SAndroid Build Coastguard Worker 931*481dde66SAndroid Build Coastguard WorkerGets the [`TestSuite`](#TestSuite) object for the `i`-th test suite among all 932*481dde66SAndroid Build Coastguard Workerthe test suites. `i` can range from 0 to `total_test_suite_count() - 1`. If `i` 933*481dde66SAndroid Build Coastguard Workeris not in that range, returns `NULL`. 934*481dde66SAndroid Build Coastguard Worker 935*481dde66SAndroid Build Coastguard Worker##### ad_hoc_test_result {#UnitTest::ad_hoc_test_result} 936*481dde66SAndroid Build Coastguard Worker 937*481dde66SAndroid Build Coastguard Worker`const TestResult& UnitTest::ad_hoc_test_result() const` 938*481dde66SAndroid Build Coastguard Worker 939*481dde66SAndroid Build Coastguard WorkerReturns the [`TestResult`](#TestResult) containing information on test failures 940*481dde66SAndroid Build Coastguard Workerand properties logged outside of individual test suites. 941*481dde66SAndroid Build Coastguard Worker 942*481dde66SAndroid Build Coastguard Worker##### listeners {#UnitTest::listeners} 943*481dde66SAndroid Build Coastguard Worker 944*481dde66SAndroid Build Coastguard Worker`TestEventListeners& UnitTest::listeners()` 945*481dde66SAndroid Build Coastguard Worker 946*481dde66SAndroid Build Coastguard WorkerReturns the list of event listeners that can be used to track events inside 947*481dde66SAndroid Build Coastguard WorkerGoogleTest. See [`TestEventListeners`](#TestEventListeners). 948*481dde66SAndroid Build Coastguard Worker 949*481dde66SAndroid Build Coastguard Worker### TestEventListener {#TestEventListener} 950*481dde66SAndroid Build Coastguard Worker 951*481dde66SAndroid Build Coastguard Worker`testing::TestEventListener` 952*481dde66SAndroid Build Coastguard Worker 953*481dde66SAndroid Build Coastguard WorkerThe interface for tracing execution of tests. The methods below are listed in 954*481dde66SAndroid Build Coastguard Workerthe order the corresponding events are fired. 955*481dde66SAndroid Build Coastguard Worker 956*481dde66SAndroid Build Coastguard Worker#### Public Methods {#TestEventListener-public} 957*481dde66SAndroid Build Coastguard Worker 958*481dde66SAndroid Build Coastguard Worker##### OnTestProgramStart {#TestEventListener::OnTestProgramStart} 959*481dde66SAndroid Build Coastguard Worker 960*481dde66SAndroid Build Coastguard Worker`virtual void TestEventListener::OnTestProgramStart(const UnitTest& unit_test)` 961*481dde66SAndroid Build Coastguard Worker 962*481dde66SAndroid Build Coastguard WorkerFired before any test activity starts. 963*481dde66SAndroid Build Coastguard Worker 964*481dde66SAndroid Build Coastguard Worker##### OnTestIterationStart {#TestEventListener::OnTestIterationStart} 965*481dde66SAndroid Build Coastguard Worker 966*481dde66SAndroid Build Coastguard Worker`virtual void TestEventListener::OnTestIterationStart(const UnitTest& unit_test, 967*481dde66SAndroid Build Coastguard Workerint iteration)` 968*481dde66SAndroid Build Coastguard Worker 969*481dde66SAndroid Build Coastguard WorkerFired before each iteration of tests starts. There may be more than one 970*481dde66SAndroid Build Coastguard Workeriteration if `GTEST_FLAG(repeat)` is set. `iteration` is the iteration index, 971*481dde66SAndroid Build Coastguard Workerstarting from 0. 972*481dde66SAndroid Build Coastguard Worker 973*481dde66SAndroid Build Coastguard Worker##### OnEnvironmentsSetUpStart {#TestEventListener::OnEnvironmentsSetUpStart} 974*481dde66SAndroid Build Coastguard Worker 975*481dde66SAndroid Build Coastguard Worker`virtual void TestEventListener::OnEnvironmentsSetUpStart(const UnitTest& 976*481dde66SAndroid Build Coastguard Workerunit_test)` 977*481dde66SAndroid Build Coastguard Worker 978*481dde66SAndroid Build Coastguard WorkerFired before environment set-up for each iteration of tests starts. 979*481dde66SAndroid Build Coastguard Worker 980*481dde66SAndroid Build Coastguard Worker##### OnEnvironmentsSetUpEnd {#TestEventListener::OnEnvironmentsSetUpEnd} 981*481dde66SAndroid Build Coastguard Worker 982*481dde66SAndroid Build Coastguard Worker`virtual void TestEventListener::OnEnvironmentsSetUpEnd(const UnitTest& 983*481dde66SAndroid Build Coastguard Workerunit_test)` 984*481dde66SAndroid Build Coastguard Worker 985*481dde66SAndroid Build Coastguard WorkerFired after environment set-up for each iteration of tests ends. 986*481dde66SAndroid Build Coastguard Worker 987*481dde66SAndroid Build Coastguard Worker##### OnTestSuiteStart {#TestEventListener::OnTestSuiteStart} 988*481dde66SAndroid Build Coastguard Worker 989*481dde66SAndroid Build Coastguard Worker`virtual void TestEventListener::OnTestSuiteStart(const TestSuite& test_suite)` 990*481dde66SAndroid Build Coastguard Worker 991*481dde66SAndroid Build Coastguard WorkerFired before the test suite starts. 992*481dde66SAndroid Build Coastguard Worker 993*481dde66SAndroid Build Coastguard Worker##### OnTestStart {#TestEventListener::OnTestStart} 994*481dde66SAndroid Build Coastguard Worker 995*481dde66SAndroid Build Coastguard Worker`virtual void TestEventListener::OnTestStart(const TestInfo& test_info)` 996*481dde66SAndroid Build Coastguard Worker 997*481dde66SAndroid Build Coastguard WorkerFired before the test starts. 998*481dde66SAndroid Build Coastguard Worker 999*481dde66SAndroid Build Coastguard Worker##### OnTestPartResult {#TestEventListener::OnTestPartResult} 1000*481dde66SAndroid Build Coastguard Worker 1001*481dde66SAndroid Build Coastguard Worker`virtual void TestEventListener::OnTestPartResult(const TestPartResult& 1002*481dde66SAndroid Build Coastguard Workertest_part_result)` 1003*481dde66SAndroid Build Coastguard Worker 1004*481dde66SAndroid Build Coastguard WorkerFired after a failed assertion or a `SUCCEED()` invocation. If you want to throw 1005*481dde66SAndroid Build Coastguard Workeran exception from this function to skip to the next test, it must be an 1006*481dde66SAndroid Build Coastguard Worker[`AssertionException`](#AssertionException) or inherited from it. 1007*481dde66SAndroid Build Coastguard Worker 1008*481dde66SAndroid Build Coastguard Worker##### OnTestEnd {#TestEventListener::OnTestEnd} 1009*481dde66SAndroid Build Coastguard Worker 1010*481dde66SAndroid Build Coastguard Worker`virtual void TestEventListener::OnTestEnd(const TestInfo& test_info)` 1011*481dde66SAndroid Build Coastguard Worker 1012*481dde66SAndroid Build Coastguard WorkerFired after the test ends. 1013*481dde66SAndroid Build Coastguard Worker 1014*481dde66SAndroid Build Coastguard Worker##### OnTestSuiteEnd {#TestEventListener::OnTestSuiteEnd} 1015*481dde66SAndroid Build Coastguard Worker 1016*481dde66SAndroid Build Coastguard Worker`virtual void TestEventListener::OnTestSuiteEnd(const TestSuite& test_suite)` 1017*481dde66SAndroid Build Coastguard Worker 1018*481dde66SAndroid Build Coastguard WorkerFired after the test suite ends. 1019*481dde66SAndroid Build Coastguard Worker 1020*481dde66SAndroid Build Coastguard Worker##### OnEnvironmentsTearDownStart {#TestEventListener::OnEnvironmentsTearDownStart} 1021*481dde66SAndroid Build Coastguard Worker 1022*481dde66SAndroid Build Coastguard Worker`virtual void TestEventListener::OnEnvironmentsTearDownStart(const UnitTest& 1023*481dde66SAndroid Build Coastguard Workerunit_test)` 1024*481dde66SAndroid Build Coastguard Worker 1025*481dde66SAndroid Build Coastguard WorkerFired before environment tear-down for each iteration of tests starts. 1026*481dde66SAndroid Build Coastguard Worker 1027*481dde66SAndroid Build Coastguard Worker##### OnEnvironmentsTearDownEnd {#TestEventListener::OnEnvironmentsTearDownEnd} 1028*481dde66SAndroid Build Coastguard Worker 1029*481dde66SAndroid Build Coastguard Worker`virtual void TestEventListener::OnEnvironmentsTearDownEnd(const UnitTest& 1030*481dde66SAndroid Build Coastguard Workerunit_test)` 1031*481dde66SAndroid Build Coastguard Worker 1032*481dde66SAndroid Build Coastguard WorkerFired after environment tear-down for each iteration of tests ends. 1033*481dde66SAndroid Build Coastguard Worker 1034*481dde66SAndroid Build Coastguard Worker##### OnTestIterationEnd {#TestEventListener::OnTestIterationEnd} 1035*481dde66SAndroid Build Coastguard Worker 1036*481dde66SAndroid Build Coastguard Worker`virtual void TestEventListener::OnTestIterationEnd(const UnitTest& unit_test, 1037*481dde66SAndroid Build Coastguard Workerint iteration)` 1038*481dde66SAndroid Build Coastguard Worker 1039*481dde66SAndroid Build Coastguard WorkerFired after each iteration of tests finishes. 1040*481dde66SAndroid Build Coastguard Worker 1041*481dde66SAndroid Build Coastguard Worker##### OnTestProgramEnd {#TestEventListener::OnTestProgramEnd} 1042*481dde66SAndroid Build Coastguard Worker 1043*481dde66SAndroid Build Coastguard Worker`virtual void TestEventListener::OnTestProgramEnd(const UnitTest& unit_test)` 1044*481dde66SAndroid Build Coastguard Worker 1045*481dde66SAndroid Build Coastguard WorkerFired after all test activities have ended. 1046*481dde66SAndroid Build Coastguard Worker 1047*481dde66SAndroid Build Coastguard Worker### TestEventListeners {#TestEventListeners} 1048*481dde66SAndroid Build Coastguard Worker 1049*481dde66SAndroid Build Coastguard Worker`testing::TestEventListeners` 1050*481dde66SAndroid Build Coastguard Worker 1051*481dde66SAndroid Build Coastguard WorkerLets users add listeners to track events in GoogleTest. 1052*481dde66SAndroid Build Coastguard Worker 1053*481dde66SAndroid Build Coastguard Worker#### Public Methods {#TestEventListeners-public} 1054*481dde66SAndroid Build Coastguard Worker 1055*481dde66SAndroid Build Coastguard Worker##### Append {#TestEventListeners::Append} 1056*481dde66SAndroid Build Coastguard Worker 1057*481dde66SAndroid Build Coastguard Worker`void TestEventListeners::Append(TestEventListener* listener)` 1058*481dde66SAndroid Build Coastguard Worker 1059*481dde66SAndroid Build Coastguard WorkerAppends an event listener to the end of the list. GoogleTest assumes ownership 1060*481dde66SAndroid Build Coastguard Workerof the listener (i.e. it will delete the listener when the test program 1061*481dde66SAndroid Build Coastguard Workerfinishes). 1062*481dde66SAndroid Build Coastguard Worker 1063*481dde66SAndroid Build Coastguard Worker##### Release {#TestEventListeners::Release} 1064*481dde66SAndroid Build Coastguard Worker 1065*481dde66SAndroid Build Coastguard Worker`TestEventListener* TestEventListeners::Release(TestEventListener* listener)` 1066*481dde66SAndroid Build Coastguard Worker 1067*481dde66SAndroid Build Coastguard WorkerRemoves the given event listener from the list and returns it. It then becomes 1068*481dde66SAndroid Build Coastguard Workerthe caller's responsibility to delete the listener. Returns `NULL` if the 1069*481dde66SAndroid Build Coastguard Workerlistener is not found in the list. 1070*481dde66SAndroid Build Coastguard Worker 1071*481dde66SAndroid Build Coastguard Worker##### default_result_printer {#TestEventListeners::default_result_printer} 1072*481dde66SAndroid Build Coastguard Worker 1073*481dde66SAndroid Build Coastguard Worker`TestEventListener* TestEventListeners::default_result_printer() const` 1074*481dde66SAndroid Build Coastguard Worker 1075*481dde66SAndroid Build Coastguard WorkerReturns the standard listener responsible for the default console output. Can be 1076*481dde66SAndroid Build Coastguard Workerremoved from the listeners list to shut down default console output. Note that 1077*481dde66SAndroid Build Coastguard Workerremoving this object from the listener list with 1078*481dde66SAndroid Build Coastguard Worker[`Release()`](#TestEventListeners::Release) transfers its ownership to the 1079*481dde66SAndroid Build Coastguard Workercaller and makes this function return `NULL` the next time. 1080*481dde66SAndroid Build Coastguard Worker 1081*481dde66SAndroid Build Coastguard Worker##### default_xml_generator {#TestEventListeners::default_xml_generator} 1082*481dde66SAndroid Build Coastguard Worker 1083*481dde66SAndroid Build Coastguard Worker`TestEventListener* TestEventListeners::default_xml_generator() const` 1084*481dde66SAndroid Build Coastguard Worker 1085*481dde66SAndroid Build Coastguard WorkerReturns the standard listener responsible for the default XML output controlled 1086*481dde66SAndroid Build Coastguard Workerby the `--gtest_output=xml` flag. Can be removed from the listeners list by 1087*481dde66SAndroid Build Coastguard Workerusers who want to shut down the default XML output controlled by this flag and 1088*481dde66SAndroid Build Coastguard Workersubstitute it with custom one. Note that removing this object from the listener 1089*481dde66SAndroid Build Coastguard Workerlist with [`Release()`](#TestEventListeners::Release) transfers its ownership to 1090*481dde66SAndroid Build Coastguard Workerthe caller and makes this function return `NULL` the next time. 1091*481dde66SAndroid Build Coastguard Worker 1092*481dde66SAndroid Build Coastguard Worker### TestPartResult {#TestPartResult} 1093*481dde66SAndroid Build Coastguard Worker 1094*481dde66SAndroid Build Coastguard Worker`testing::TestPartResult` 1095*481dde66SAndroid Build Coastguard Worker 1096*481dde66SAndroid Build Coastguard WorkerA copyable object representing the result of a test part (i.e. an assertion or 1097*481dde66SAndroid Build Coastguard Workeran explicit `FAIL()`, `ADD_FAILURE()`, or `SUCCESS()`). 1098*481dde66SAndroid Build Coastguard Worker 1099*481dde66SAndroid Build Coastguard Worker#### Public Methods {#TestPartResult-public} 1100*481dde66SAndroid Build Coastguard Worker 1101*481dde66SAndroid Build Coastguard Worker##### type {#TestPartResult::type} 1102*481dde66SAndroid Build Coastguard Worker 1103*481dde66SAndroid Build Coastguard Worker`Type TestPartResult::type() const` 1104*481dde66SAndroid Build Coastguard Worker 1105*481dde66SAndroid Build Coastguard WorkerGets the outcome of the test part. 1106*481dde66SAndroid Build Coastguard Worker 1107*481dde66SAndroid Build Coastguard WorkerThe return type `Type` is an enum defined as follows: 1108*481dde66SAndroid Build Coastguard Worker 1109*481dde66SAndroid Build Coastguard Worker```cpp 1110*481dde66SAndroid Build Coastguard Workerenum Type { 1111*481dde66SAndroid Build Coastguard Worker kSuccess, // Succeeded. 1112*481dde66SAndroid Build Coastguard Worker kNonFatalFailure, // Failed but the test can continue. 1113*481dde66SAndroid Build Coastguard Worker kFatalFailure, // Failed and the test should be terminated. 1114*481dde66SAndroid Build Coastguard Worker kSkip // Skipped. 1115*481dde66SAndroid Build Coastguard Worker}; 1116*481dde66SAndroid Build Coastguard Worker``` 1117*481dde66SAndroid Build Coastguard Worker 1118*481dde66SAndroid Build Coastguard Worker##### file_name {#TestPartResult::file_name} 1119*481dde66SAndroid Build Coastguard Worker 1120*481dde66SAndroid Build Coastguard Worker`const char* TestPartResult::file_name() const` 1121*481dde66SAndroid Build Coastguard Worker 1122*481dde66SAndroid Build Coastguard WorkerGets the name of the source file where the test part took place, or `NULL` if 1123*481dde66SAndroid Build Coastguard Workerit's unknown. 1124*481dde66SAndroid Build Coastguard Worker 1125*481dde66SAndroid Build Coastguard Worker##### line_number {#TestPartResult::line_number} 1126*481dde66SAndroid Build Coastguard Worker 1127*481dde66SAndroid Build Coastguard Worker`int TestPartResult::line_number() const` 1128*481dde66SAndroid Build Coastguard Worker 1129*481dde66SAndroid Build Coastguard WorkerGets the line in the source file where the test part took place, or `-1` if it's 1130*481dde66SAndroid Build Coastguard Workerunknown. 1131*481dde66SAndroid Build Coastguard Worker 1132*481dde66SAndroid Build Coastguard Worker##### summary {#TestPartResult::summary} 1133*481dde66SAndroid Build Coastguard Worker 1134*481dde66SAndroid Build Coastguard Worker`const char* TestPartResult::summary() const` 1135*481dde66SAndroid Build Coastguard Worker 1136*481dde66SAndroid Build Coastguard WorkerGets the summary of the failure message. 1137*481dde66SAndroid Build Coastguard Worker 1138*481dde66SAndroid Build Coastguard Worker##### message {#TestPartResult::message} 1139*481dde66SAndroid Build Coastguard Worker 1140*481dde66SAndroid Build Coastguard Worker`const char* TestPartResult::message() const` 1141*481dde66SAndroid Build Coastguard Worker 1142*481dde66SAndroid Build Coastguard WorkerGets the message associated with the test part. 1143*481dde66SAndroid Build Coastguard Worker 1144*481dde66SAndroid Build Coastguard Worker##### skipped {#TestPartResult::skipped} 1145*481dde66SAndroid Build Coastguard Worker 1146*481dde66SAndroid Build Coastguard Worker`bool TestPartResult::skipped() const` 1147*481dde66SAndroid Build Coastguard Worker 1148*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the test part was skipped. 1149*481dde66SAndroid Build Coastguard Worker 1150*481dde66SAndroid Build Coastguard Worker##### passed {#TestPartResult::passed} 1151*481dde66SAndroid Build Coastguard Worker 1152*481dde66SAndroid Build Coastguard Worker`bool TestPartResult::passed() const` 1153*481dde66SAndroid Build Coastguard Worker 1154*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the test part passed. 1155*481dde66SAndroid Build Coastguard Worker 1156*481dde66SAndroid Build Coastguard Worker##### nonfatally_failed {#TestPartResult::nonfatally_failed} 1157*481dde66SAndroid Build Coastguard Worker 1158*481dde66SAndroid Build Coastguard Worker`bool TestPartResult::nonfatally_failed() const` 1159*481dde66SAndroid Build Coastguard Worker 1160*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the test part non-fatally failed. 1161*481dde66SAndroid Build Coastguard Worker 1162*481dde66SAndroid Build Coastguard Worker##### fatally_failed {#TestPartResult::fatally_failed} 1163*481dde66SAndroid Build Coastguard Worker 1164*481dde66SAndroid Build Coastguard Worker`bool TestPartResult::fatally_failed() const` 1165*481dde66SAndroid Build Coastguard Worker 1166*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the test part fatally failed. 1167*481dde66SAndroid Build Coastguard Worker 1168*481dde66SAndroid Build Coastguard Worker##### failed {#TestPartResult::failed} 1169*481dde66SAndroid Build Coastguard Worker 1170*481dde66SAndroid Build Coastguard Worker`bool TestPartResult::failed() const` 1171*481dde66SAndroid Build Coastguard Worker 1172*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the test part failed. 1173*481dde66SAndroid Build Coastguard Worker 1174*481dde66SAndroid Build Coastguard Worker### TestProperty {#TestProperty} 1175*481dde66SAndroid Build Coastguard Worker 1176*481dde66SAndroid Build Coastguard Worker`testing::TestProperty` 1177*481dde66SAndroid Build Coastguard Worker 1178*481dde66SAndroid Build Coastguard WorkerA copyable object representing a user-specified test property which can be 1179*481dde66SAndroid Build Coastguard Workeroutput as a key/value string pair. 1180*481dde66SAndroid Build Coastguard Worker 1181*481dde66SAndroid Build Coastguard Worker#### Public Methods {#TestProperty-public} 1182*481dde66SAndroid Build Coastguard Worker 1183*481dde66SAndroid Build Coastguard Worker##### key {#key} 1184*481dde66SAndroid Build Coastguard Worker 1185*481dde66SAndroid Build Coastguard Worker`const char* key() const` 1186*481dde66SAndroid Build Coastguard Worker 1187*481dde66SAndroid Build Coastguard WorkerGets the user-supplied key. 1188*481dde66SAndroid Build Coastguard Worker 1189*481dde66SAndroid Build Coastguard Worker##### value {#value} 1190*481dde66SAndroid Build Coastguard Worker 1191*481dde66SAndroid Build Coastguard Worker`const char* value() const` 1192*481dde66SAndroid Build Coastguard Worker 1193*481dde66SAndroid Build Coastguard WorkerGets the user-supplied value. 1194*481dde66SAndroid Build Coastguard Worker 1195*481dde66SAndroid Build Coastguard Worker##### SetValue {#SetValue} 1196*481dde66SAndroid Build Coastguard Worker 1197*481dde66SAndroid Build Coastguard Worker`void SetValue(const std::string& new_value)` 1198*481dde66SAndroid Build Coastguard Worker 1199*481dde66SAndroid Build Coastguard WorkerSets a new value, overriding the previous one. 1200*481dde66SAndroid Build Coastguard Worker 1201*481dde66SAndroid Build Coastguard Worker### TestResult {#TestResult} 1202*481dde66SAndroid Build Coastguard Worker 1203*481dde66SAndroid Build Coastguard Worker`testing::TestResult` 1204*481dde66SAndroid Build Coastguard Worker 1205*481dde66SAndroid Build Coastguard WorkerContains information about the result of a single test. 1206*481dde66SAndroid Build Coastguard Worker 1207*481dde66SAndroid Build Coastguard Worker`TestResult` is not copyable. 1208*481dde66SAndroid Build Coastguard Worker 1209*481dde66SAndroid Build Coastguard Worker#### Public Methods {#TestResult-public} 1210*481dde66SAndroid Build Coastguard Worker 1211*481dde66SAndroid Build Coastguard Worker##### total_part_count {#TestResult::total_part_count} 1212*481dde66SAndroid Build Coastguard Worker 1213*481dde66SAndroid Build Coastguard Worker`int TestResult::total_part_count() const` 1214*481dde66SAndroid Build Coastguard Worker 1215*481dde66SAndroid Build Coastguard WorkerGets the number of all test parts. This is the sum of the number of successful 1216*481dde66SAndroid Build Coastguard Workertest parts and the number of failed test parts. 1217*481dde66SAndroid Build Coastguard Worker 1218*481dde66SAndroid Build Coastguard Worker##### test_property_count {#TestResult::test_property_count} 1219*481dde66SAndroid Build Coastguard Worker 1220*481dde66SAndroid Build Coastguard Worker`int TestResult::test_property_count() const` 1221*481dde66SAndroid Build Coastguard Worker 1222*481dde66SAndroid Build Coastguard WorkerReturns the number of test properties. 1223*481dde66SAndroid Build Coastguard Worker 1224*481dde66SAndroid Build Coastguard Worker##### Passed {#TestResult::Passed} 1225*481dde66SAndroid Build Coastguard Worker 1226*481dde66SAndroid Build Coastguard Worker`bool TestResult::Passed() const` 1227*481dde66SAndroid Build Coastguard Worker 1228*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the test passed (i.e. no test part failed). 1229*481dde66SAndroid Build Coastguard Worker 1230*481dde66SAndroid Build Coastguard Worker##### Skipped {#TestResult::Skipped} 1231*481dde66SAndroid Build Coastguard Worker 1232*481dde66SAndroid Build Coastguard Worker`bool TestResult::Skipped() const` 1233*481dde66SAndroid Build Coastguard Worker 1234*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the test was skipped. 1235*481dde66SAndroid Build Coastguard Worker 1236*481dde66SAndroid Build Coastguard Worker##### Failed {#TestResult::Failed} 1237*481dde66SAndroid Build Coastguard Worker 1238*481dde66SAndroid Build Coastguard Worker`bool TestResult::Failed() const` 1239*481dde66SAndroid Build Coastguard Worker 1240*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the test failed. 1241*481dde66SAndroid Build Coastguard Worker 1242*481dde66SAndroid Build Coastguard Worker##### HasFatalFailure {#TestResult::HasFatalFailure} 1243*481dde66SAndroid Build Coastguard Worker 1244*481dde66SAndroid Build Coastguard Worker`bool TestResult::HasFatalFailure() const` 1245*481dde66SAndroid Build Coastguard Worker 1246*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the test fatally failed. 1247*481dde66SAndroid Build Coastguard Worker 1248*481dde66SAndroid Build Coastguard Worker##### HasNonfatalFailure {#TestResult::HasNonfatalFailure} 1249*481dde66SAndroid Build Coastguard Worker 1250*481dde66SAndroid Build Coastguard Worker`bool TestResult::HasNonfatalFailure() const` 1251*481dde66SAndroid Build Coastguard Worker 1252*481dde66SAndroid Build Coastguard WorkerReturns true if and only if the test has a non-fatal failure. 1253*481dde66SAndroid Build Coastguard Worker 1254*481dde66SAndroid Build Coastguard Worker##### elapsed_time {#TestResult::elapsed_time} 1255*481dde66SAndroid Build Coastguard Worker 1256*481dde66SAndroid Build Coastguard Worker`TimeInMillis TestResult::elapsed_time() const` 1257*481dde66SAndroid Build Coastguard Worker 1258*481dde66SAndroid Build Coastguard WorkerReturns the elapsed time, in milliseconds. 1259*481dde66SAndroid Build Coastguard Worker 1260*481dde66SAndroid Build Coastguard Worker##### start_timestamp {#TestResult::start_timestamp} 1261*481dde66SAndroid Build Coastguard Worker 1262*481dde66SAndroid Build Coastguard Worker`TimeInMillis TestResult::start_timestamp() const` 1263*481dde66SAndroid Build Coastguard Worker 1264*481dde66SAndroid Build Coastguard WorkerGets the time of the test case start, in ms from the start of the UNIX epoch. 1265*481dde66SAndroid Build Coastguard Worker 1266*481dde66SAndroid Build Coastguard Worker##### GetTestPartResult {#TestResult::GetTestPartResult} 1267*481dde66SAndroid Build Coastguard Worker 1268*481dde66SAndroid Build Coastguard Worker`const TestPartResult& TestResult::GetTestPartResult(int i) const` 1269*481dde66SAndroid Build Coastguard Worker 1270*481dde66SAndroid Build Coastguard WorkerReturns the [`TestPartResult`](#TestPartResult) for the `i`-th test part result 1271*481dde66SAndroid Build Coastguard Workeramong all the results. `i` can range from 0 to `total_part_count() - 1`. If `i` 1272*481dde66SAndroid Build Coastguard Workeris not in that range, aborts the program. 1273*481dde66SAndroid Build Coastguard Worker 1274*481dde66SAndroid Build Coastguard Worker##### GetTestProperty {#TestResult::GetTestProperty} 1275*481dde66SAndroid Build Coastguard Worker 1276*481dde66SAndroid Build Coastguard Worker`const TestProperty& TestResult::GetTestProperty(int i) const` 1277*481dde66SAndroid Build Coastguard Worker 1278*481dde66SAndroid Build Coastguard WorkerReturns the [`TestProperty`](#TestProperty) object for the `i`-th test property. 1279*481dde66SAndroid Build Coastguard Worker`i` can range from 0 to `test_property_count() - 1`. If `i` is not in that 1280*481dde66SAndroid Build Coastguard Workerrange, aborts the program. 1281*481dde66SAndroid Build Coastguard Worker 1282*481dde66SAndroid Build Coastguard Worker### TimeInMillis {#TimeInMillis} 1283*481dde66SAndroid Build Coastguard Worker 1284*481dde66SAndroid Build Coastguard Worker`testing::TimeInMillis` 1285*481dde66SAndroid Build Coastguard Worker 1286*481dde66SAndroid Build Coastguard WorkerAn integer type representing time in milliseconds. 1287*481dde66SAndroid Build Coastguard Worker 1288*481dde66SAndroid Build Coastguard Worker### Types {#Types} 1289*481dde66SAndroid Build Coastguard Worker 1290*481dde66SAndroid Build Coastguard Worker`testing::Types<T...>` 1291*481dde66SAndroid Build Coastguard Worker 1292*481dde66SAndroid Build Coastguard WorkerRepresents a list of types for use in typed tests and type-parameterized tests. 1293*481dde66SAndroid Build Coastguard Worker 1294*481dde66SAndroid Build Coastguard WorkerThe template argument `T...` can be any number of types, for example: 1295*481dde66SAndroid Build Coastguard Worker 1296*481dde66SAndroid Build Coastguard Worker``` 1297*481dde66SAndroid Build Coastguard Workertesting::Types<char, int, unsigned int> 1298*481dde66SAndroid Build Coastguard Worker``` 1299*481dde66SAndroid Build Coastguard Worker 1300*481dde66SAndroid Build Coastguard WorkerSee [Typed Tests](../advanced.md#typed-tests) and 1301*481dde66SAndroid Build Coastguard Worker[Type-Parameterized Tests](../advanced.md#type-parameterized-tests) for more 1302*481dde66SAndroid Build Coastguard Workerinformation. 1303*481dde66SAndroid Build Coastguard Worker 1304*481dde66SAndroid Build Coastguard Worker### WithParamInterface {#WithParamInterface} 1305*481dde66SAndroid Build Coastguard Worker 1306*481dde66SAndroid Build Coastguard Worker`testing::WithParamInterface<T>` 1307*481dde66SAndroid Build Coastguard Worker 1308*481dde66SAndroid Build Coastguard WorkerThe pure interface class that all value-parameterized tests inherit from. 1309*481dde66SAndroid Build Coastguard Worker 1310*481dde66SAndroid Build Coastguard WorkerA value-parameterized test fixture class must inherit from both [`Test`](#Test) 1311*481dde66SAndroid Build Coastguard Workerand `WithParamInterface`. In most cases that just means inheriting from 1312*481dde66SAndroid Build Coastguard Worker[`TestWithParam`](#TestWithParam), but more complicated test hierarchies may 1313*481dde66SAndroid Build Coastguard Workerneed to inherit from `Test` and `WithParamInterface` at different levels. 1314*481dde66SAndroid Build Coastguard Worker 1315*481dde66SAndroid Build Coastguard WorkerThis interface defines the type alias `ParamType` for the parameter type `T` and 1316*481dde66SAndroid Build Coastguard Workerhas support for accessing the test parameter value via the `GetParam()` method: 1317*481dde66SAndroid Build Coastguard Worker 1318*481dde66SAndroid Build Coastguard Worker``` 1319*481dde66SAndroid Build Coastguard Workerstatic const ParamType& GetParam() 1320*481dde66SAndroid Build Coastguard Worker``` 1321*481dde66SAndroid Build Coastguard Worker 1322*481dde66SAndroid Build Coastguard WorkerFor more information, see 1323*481dde66SAndroid Build Coastguard Worker[Value-Parameterized Tests](../advanced.md#value-parameterized-tests). 1324*481dde66SAndroid Build Coastguard Worker 1325*481dde66SAndroid Build Coastguard Worker## Functions 1326*481dde66SAndroid Build Coastguard Worker 1327*481dde66SAndroid Build Coastguard WorkerGoogleTest defines the following functions to help with writing and running 1328*481dde66SAndroid Build Coastguard Workertests. 1329*481dde66SAndroid Build Coastguard Worker 1330*481dde66SAndroid Build Coastguard Worker### InitGoogleTest {#InitGoogleTest} 1331*481dde66SAndroid Build Coastguard Worker 1332*481dde66SAndroid Build Coastguard Worker`void testing::InitGoogleTest(int* argc, char** argv)` \ 1333*481dde66SAndroid Build Coastguard Worker`void testing::InitGoogleTest(int* argc, wchar_t** argv)` \ 1334*481dde66SAndroid Build Coastguard Worker`void testing::InitGoogleTest()` 1335*481dde66SAndroid Build Coastguard Worker 1336*481dde66SAndroid Build Coastguard WorkerInitializes GoogleTest. This must be called before calling 1337*481dde66SAndroid Build Coastguard Worker[`RUN_ALL_TESTS()`](#RUN_ALL_TESTS). In particular, it parses the command line 1338*481dde66SAndroid Build Coastguard Workerfor the flags that GoogleTest recognizes. Whenever a GoogleTest flag is seen, it 1339*481dde66SAndroid Build Coastguard Workeris removed from `argv`, and `*argc` is decremented. Keep in mind that `argv` 1340*481dde66SAndroid Build Coastguard Workermust terminate with a `NULL` pointer (i.e. `argv[argc]` is `NULL`), which is 1341*481dde66SAndroid Build Coastguard Workeralready the case with the default `argv` passed to `main`. 1342*481dde66SAndroid Build Coastguard Worker 1343*481dde66SAndroid Build Coastguard WorkerNo value is returned. Instead, the GoogleTest flag variables are updated. 1344*481dde66SAndroid Build Coastguard Worker 1345*481dde66SAndroid Build Coastguard WorkerThe `InitGoogleTest(int* argc, wchar_t** argv)` overload can be used in Windows 1346*481dde66SAndroid Build Coastguard Workerprograms compiled in `UNICODE` mode. 1347*481dde66SAndroid Build Coastguard Worker 1348*481dde66SAndroid Build Coastguard WorkerThe argument-less `InitGoogleTest()` overload can be used on Arduino/embedded 1349*481dde66SAndroid Build Coastguard Workerplatforms where there is no `argc`/`argv`. 1350*481dde66SAndroid Build Coastguard Worker 1351*481dde66SAndroid Build Coastguard Worker### AddGlobalTestEnvironment {#AddGlobalTestEnvironment} 1352*481dde66SAndroid Build Coastguard Worker 1353*481dde66SAndroid Build Coastguard Worker`Environment* testing::AddGlobalTestEnvironment(Environment* env)` 1354*481dde66SAndroid Build Coastguard Worker 1355*481dde66SAndroid Build Coastguard WorkerAdds a test environment to the test program. Must be called before 1356*481dde66SAndroid Build Coastguard Worker[`RUN_ALL_TESTS()`](#RUN_ALL_TESTS) is called. See 1357*481dde66SAndroid Build Coastguard Worker[Global Set-Up and Tear-Down](../advanced.md#global-set-up-and-tear-down) for 1358*481dde66SAndroid Build Coastguard Workermore information. 1359*481dde66SAndroid Build Coastguard Worker 1360*481dde66SAndroid Build Coastguard WorkerSee also [`Environment`](#Environment). 1361*481dde66SAndroid Build Coastguard Worker 1362*481dde66SAndroid Build Coastguard Worker### RegisterTest {#RegisterTest} 1363*481dde66SAndroid Build Coastguard Worker 1364*481dde66SAndroid Build Coastguard Worker```cpp 1365*481dde66SAndroid Build Coastguard Workertemplate <typename Factory> 1366*481dde66SAndroid Build Coastguard WorkerTestInfo* testing::RegisterTest(const char* test_suite_name, const char* test_name, 1367*481dde66SAndroid Build Coastguard Worker const char* type_param, const char* value_param, 1368*481dde66SAndroid Build Coastguard Worker const char* file, int line, Factory factory) 1369*481dde66SAndroid Build Coastguard Worker``` 1370*481dde66SAndroid Build Coastguard Worker 1371*481dde66SAndroid Build Coastguard WorkerDynamically registers a test with the framework. 1372*481dde66SAndroid Build Coastguard Worker 1373*481dde66SAndroid Build Coastguard WorkerThe `factory` argument is a factory callable (move-constructible) object or 1374*481dde66SAndroid Build Coastguard Workerfunction pointer that creates a new instance of the `Test` object. It handles 1375*481dde66SAndroid Build Coastguard Workerownership to the caller. The signature of the callable is `Fixture*()`, where 1376*481dde66SAndroid Build Coastguard Worker`Fixture` is the test fixture class for the test. All tests registered with the 1377*481dde66SAndroid Build Coastguard Workersame `test_suite_name` must return the same fixture type. This is checked at 1378*481dde66SAndroid Build Coastguard Workerruntime. 1379*481dde66SAndroid Build Coastguard Worker 1380*481dde66SAndroid Build Coastguard WorkerThe framework will infer the fixture class from the factory and will call the 1381*481dde66SAndroid Build Coastguard Worker`SetUpTestSuite` and `TearDownTestSuite` methods for it. 1382*481dde66SAndroid Build Coastguard Worker 1383*481dde66SAndroid Build Coastguard WorkerMust be called before [`RUN_ALL_TESTS()`](#RUN_ALL_TESTS) is invoked, otherwise 1384*481dde66SAndroid Build Coastguard Workerbehavior is undefined. 1385*481dde66SAndroid Build Coastguard Worker 1386*481dde66SAndroid Build Coastguard WorkerSee 1387*481dde66SAndroid Build Coastguard Worker[Registering tests programmatically](../advanced.md#registering-tests-programmatically) 1388*481dde66SAndroid Build Coastguard Workerfor more information. 1389*481dde66SAndroid Build Coastguard Worker 1390*481dde66SAndroid Build Coastguard Worker### RUN_ALL_TESTS {#RUN_ALL_TESTS} 1391*481dde66SAndroid Build Coastguard Worker 1392*481dde66SAndroid Build Coastguard Worker`int RUN_ALL_TESTS()` 1393*481dde66SAndroid Build Coastguard Worker 1394*481dde66SAndroid Build Coastguard WorkerUse this function in `main()` to run all tests. It returns `0` if all tests are 1395*481dde66SAndroid Build Coastguard Workersuccessful, or `1` otherwise. 1396*481dde66SAndroid Build Coastguard Worker 1397*481dde66SAndroid Build Coastguard Worker`RUN_ALL_TESTS()` should be invoked after the command line has been parsed by 1398*481dde66SAndroid Build Coastguard Worker[`InitGoogleTest()`](#InitGoogleTest). 1399*481dde66SAndroid Build Coastguard Worker 1400*481dde66SAndroid Build Coastguard WorkerThis function was formerly a macro; thus, it is in the global namespace and has 1401*481dde66SAndroid Build Coastguard Workeran all-caps name. 1402*481dde66SAndroid Build Coastguard Worker 1403*481dde66SAndroid Build Coastguard Worker### AssertionSuccess {#AssertionSuccess} 1404*481dde66SAndroid Build Coastguard Worker 1405*481dde66SAndroid Build Coastguard Worker`AssertionResult testing::AssertionSuccess()` 1406*481dde66SAndroid Build Coastguard Worker 1407*481dde66SAndroid Build Coastguard WorkerCreates a successful assertion result. See 1408*481dde66SAndroid Build Coastguard Worker[`AssertionResult`](#AssertionResult). 1409*481dde66SAndroid Build Coastguard Worker 1410*481dde66SAndroid Build Coastguard Worker### AssertionFailure {#AssertionFailure} 1411*481dde66SAndroid Build Coastguard Worker 1412*481dde66SAndroid Build Coastguard Worker`AssertionResult testing::AssertionFailure()` 1413*481dde66SAndroid Build Coastguard Worker 1414*481dde66SAndroid Build Coastguard WorkerCreates a failed assertion result. Use the `<<` operator to store a failure 1415*481dde66SAndroid Build Coastguard Workermessage: 1416*481dde66SAndroid Build Coastguard Worker 1417*481dde66SAndroid Build Coastguard Worker```cpp 1418*481dde66SAndroid Build Coastguard Workertesting::AssertionFailure() << "My failure message"; 1419*481dde66SAndroid Build Coastguard Worker``` 1420*481dde66SAndroid Build Coastguard Worker 1421*481dde66SAndroid Build Coastguard WorkerSee [`AssertionResult`](#AssertionResult). 1422*481dde66SAndroid Build Coastguard Worker 1423*481dde66SAndroid Build Coastguard Worker### StaticAssertTypeEq {#StaticAssertTypeEq} 1424*481dde66SAndroid Build Coastguard Worker 1425*481dde66SAndroid Build Coastguard Worker`testing::StaticAssertTypeEq<T1, T2>()` 1426*481dde66SAndroid Build Coastguard Worker 1427*481dde66SAndroid Build Coastguard WorkerCompile-time assertion for type equality. Compiles if and only if `T1` and `T2` 1428*481dde66SAndroid Build Coastguard Workerare the same type. The value it returns is irrelevant. 1429*481dde66SAndroid Build Coastguard Worker 1430*481dde66SAndroid Build Coastguard WorkerSee [Type Assertions](../advanced.md#type-assertions) for more information. 1431*481dde66SAndroid Build Coastguard Worker 1432*481dde66SAndroid Build Coastguard Worker### PrintToString {#PrintToString} 1433*481dde66SAndroid Build Coastguard Worker 1434*481dde66SAndroid Build Coastguard Worker`std::string testing::PrintToString(x)` 1435*481dde66SAndroid Build Coastguard Worker 1436*481dde66SAndroid Build Coastguard WorkerPrints any value `x` using GoogleTest's value printer. 1437*481dde66SAndroid Build Coastguard Worker 1438*481dde66SAndroid Build Coastguard WorkerSee 1439*481dde66SAndroid Build Coastguard Worker[Teaching GoogleTest How to Print Your Values](../advanced.md#teaching-googletest-how-to-print-your-values) 1440*481dde66SAndroid Build Coastguard Workerfor more information. 1441*481dde66SAndroid Build Coastguard Worker 1442*481dde66SAndroid Build Coastguard Worker### PrintToStringParamName {#PrintToStringParamName} 1443*481dde66SAndroid Build Coastguard Worker 1444*481dde66SAndroid Build Coastguard Worker`std::string testing::PrintToStringParamName(TestParamInfo<T>& info)` 1445*481dde66SAndroid Build Coastguard Worker 1446*481dde66SAndroid Build Coastguard WorkerA built-in parameterized test name generator which returns the result of 1447*481dde66SAndroid Build Coastguard Worker[`PrintToString`](#PrintToString) called on `info.param`. Does not work when the 1448*481dde66SAndroid Build Coastguard Workertest parameter is a `std::string` or C string. See 1449*481dde66SAndroid Build Coastguard Worker[Specifying Names for Value-Parameterized Test Parameters](../advanced.md#specifying-names-for-value-parameterized-test-parameters) 1450*481dde66SAndroid Build Coastguard Workerfor more information. 1451*481dde66SAndroid Build Coastguard Worker 1452*481dde66SAndroid Build Coastguard WorkerSee also [`TestParamInfo`](#TestParamInfo) and 1453*481dde66SAndroid Build Coastguard Worker[`INSTANTIATE_TEST_SUITE_P`](#INSTANTIATE_TEST_SUITE_P). 1454