tesseract v5.3.3.20231005
googletest-list-tests-unittest_.cc
Go to the documentation of this file.
1// Copyright 2006, Google Inc.
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions are
6// met:
7//
8// * Redistributions of source code must retain the above copyright
9// notice, this list of conditions and the following disclaimer.
10// * Redistributions in binary form must reproduce the above
11// copyright notice, this list of conditions and the following disclaimer
12// in the documentation and/or other materials provided with the
13// distribution.
14// * Neither the name of Google Inc. nor the names of its
15// contributors may be used to endorse or promote products derived from
16// this software without specific prior written permission.
17//
18// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
30
31// Unit test for Google Test's --gtest_list_tests flag.
32//
33// A user can ask Google Test to list all tests that will run
34// so that when using a filter, a user will know what
35// tests to look for. The tests will not be run after listing.
36//
37// This program will be invoked from a Python unit test.
38// Don't run it directly.
39
40#include "gtest/gtest.h"
41
42// Several different test cases and tests that will be listed.
43TEST(Foo, Bar1) {
44}
45
46TEST(Foo, Bar2) {
47}
48
49TEST(Foo, DISABLED_Bar3) {
50}
51
52TEST(Abc, Xyz) {
53}
54
55TEST(Abc, Def) {
56}
57
58TEST(FooBar, Baz) {
59}
60
61class FooTest : public testing::Test {
62};
63
64TEST_F(FooTest, Test1) {
65}
66
67TEST_F(FooTest, DISABLED_Test2) {
68}
69
70TEST_F(FooTest, Test3) {
71}
72
73TEST(FooDeathTest, Test1) {
74}
75
76// A group of value-parameterized tests.
77
78class MyType {
79 public:
80 explicit MyType(const std::string& a_value) : value_(a_value) {}
81
82 const std::string& value() const { return value_; }
83
84 private:
85 std::string value_;
86};
87
88// Teaches Google Test how to print a MyType.
89void PrintTo(const MyType& x, std::ostream* os) {
90 *os << x.value();
91}
92
93class ValueParamTest : public testing::TestWithParam<MyType> {
94};
95
97}
98
100}
101
103 MyInstantiation, ValueParamTest,
104 testing::Values(MyType("one line"),
105 MyType("two\nlines"),
106 MyType("a very\nloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong line"))); // NOLINT
107
108// A group of typed tests.
109
110// A deliberately long type name for testing the line-truncating
111// behavior when printing a type parameter.
113};
114
115template <typename T>
116class TypedTest : public testing::Test {
117};
118
119template <typename T, int kSize>
120class MyArray {
121};
122
125
127
129}
130
132}
133
134// A group of type-parameterized tests.
135
136template <typename T>
138};
139
141
143}
144
146}
147
149
151
152int main(int argc, char **argv) {
153 ::testing::InitGoogleTest(&argc, argv);
154
155 return RUN_ALL_TESTS();
156}
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
Definition: gtest.h:2489
testing::Types< VeryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooogName, int *, MyArray< bool, 42 > > MyTypes
REGISTER_TYPED_TEST_SUITE_P(TypeParamTest, TestA, TestB)
TYPED_TEST_SUITE(TypedTest, MyTypes)
int main(int argc, char **argv)
TYPED_TEST(TypedTest, TestA)
TYPED_TEST_SUITE_P(TypeParamTest)
TYPED_TEST_P(TypeParamTest, TestA)
void PrintTo(const MyType &x, std::ostream *os)
TEST_F(FooTest, Test1)
INSTANTIATE_TEST_SUITE_P(MyInstantiation, ValueParamTest, testing::Values(MyType("one line"), MyType("two\nlines"), MyType("a very\nloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong line")))
TEST_P(ValueParamTest, TestA)
INSTANTIATE_TYPED_TEST_SUITE_P(My, TypeParamTest, MyTypes)
internal::ValueArray< T... > Values(T... v)
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
Definition: gtest.cc:6660
const std::string & value() const
MyType(const std::string &a_value)