tesseract v5.3.3.20231005
gmock_test.cc File Reference
#include "gmock/gmock.h"
#include <string>
#include "gtest/gtest.h"
#include "gtest/internal/custom/gtest.h"

Go to the source code of this file.

Functions

template<typename Char , int M, int N>
void TestInitGoogleMock (const Char *(&argv)[M], const Char *(&new_argv)[N], const ::std::string &expected_gmock_verbose)
 
 TEST (InitGoogleMockTest, ParsesInvalidCommandLine)
 
 TEST (InitGoogleMockTest, ParsesEmptyCommandLine)
 
 TEST (InitGoogleMockTest, ParsesSingleFlag)
 
 TEST (InitGoogleMockTest, ParsesMultipleFlags)
 
 TEST (InitGoogleMockTest, ParsesUnrecognizedFlag)
 
 TEST (InitGoogleMockTest, ParsesGoogleMockFlagAndUnrecognizedFlag)
 
 TEST (WideInitGoogleMockTest, ParsesInvalidCommandLine)
 
 TEST (WideInitGoogleMockTest, ParsesEmptyCommandLine)
 
 TEST (WideInitGoogleMockTest, ParsesSingleFlag)
 
 TEST (WideInitGoogleMockTest, ParsesMultipleFlags)
 
 TEST (WideInitGoogleMockTest, ParsesUnrecognizedFlag)
 
 TEST (WideInitGoogleMockTest, ParsesGoogleMockFlagAndUnrecognizedFlag)
 
 TEST (FlagTest, IsAccessibleInCode)
 

Function Documentation

◆ TEST() [1/13]

TEST ( FlagTest  ,
IsAccessibleInCode   
)

Definition at line 177 of file gmock_test.cc.

177 {
178 bool dummy = testing::GMOCK_FLAG(catch_leaked_mocks) &&
179 testing::GMOCK_FLAG(verbose) == "";
180 (void)dummy; // Avoids the "unused local variable" warning.
181}
#define GMOCK_FLAG(name)
Definition: gmock-port.h:67

◆ TEST() [2/13]

TEST ( InitGoogleMockTest  ,
ParsesEmptyCommandLine   
)

Definition at line 74 of file gmock_test.cc.

74 {
75 const char* argv[] = {"foo.exe", nullptr};
76
77 const char* new_argv[] = {"foo.exe", nullptr};
78
79 TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose));
80}
void TestInitGoogleMock(const Char *(&argv)[M], const Char *(&new_argv)[N], const ::std::string &expected_gmock_verbose)
Definition: gmock_test.cc:50

◆ TEST() [3/13]

TEST ( InitGoogleMockTest  ,
ParsesGoogleMockFlagAndUnrecognizedFlag   
)

Definition at line 111 of file gmock_test.cc.

111 {
112 const char* argv[] = {"foo.exe", "--non_gmock_flag=blah",
113 "--gmock_verbose=error", nullptr};
114
115 const char* new_argv[] = {"foo.exe", "--non_gmock_flag=blah", nullptr};
116
117 TestInitGoogleMock(argv, new_argv, "error");
118}

◆ TEST() [4/13]

TEST ( InitGoogleMockTest  ,
ParsesInvalidCommandLine   
)

Definition at line 66 of file gmock_test.cc.

66 {
67 const char* argv[] = {nullptr};
68
69 const char* new_argv[] = {nullptr};
70
71 TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose));
72}

◆ TEST() [5/13]

TEST ( InitGoogleMockTest  ,
ParsesMultipleFlags   
)

Definition at line 90 of file gmock_test.cc.

90 {
91 int old_default_behavior = GMOCK_FLAG(default_mock_behavior);
92 const wchar_t* argv[] = {L"foo.exe", L"--gmock_verbose=info",
93 L"--gmock_default_mock_behavior=2", nullptr};
94
95 const wchar_t* new_argv[] = {L"foo.exe", nullptr};
96
97 TestInitGoogleMock(argv, new_argv, "info");
98 EXPECT_EQ(2, GMOCK_FLAG(default_mock_behavior));
99 EXPECT_NE(2, old_default_behavior);
100 GMOCK_FLAG(default_mock_behavior) = old_default_behavior;
101}
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:2043
#define EXPECT_NE(val1, val2)
Definition: gtest.h:2045

◆ TEST() [6/13]

TEST ( InitGoogleMockTest  ,
ParsesSingleFlag   
)

Definition at line 82 of file gmock_test.cc.

82 {
83 const char* argv[] = {"foo.exe", "--gmock_verbose=info", nullptr};
84
85 const char* new_argv[] = {"foo.exe", nullptr};
86
87 TestInitGoogleMock(argv, new_argv, "info");
88}

◆ TEST() [7/13]

TEST ( InitGoogleMockTest  ,
ParsesUnrecognizedFlag   
)

Definition at line 103 of file gmock_test.cc.

103 {
104 const char* argv[] = {"foo.exe", "--non_gmock_flag=blah", nullptr};
105
106 const char* new_argv[] = {"foo.exe", "--non_gmock_flag=blah", nullptr};
107
108 TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose));
109}

◆ TEST() [8/13]

TEST ( WideInitGoogleMockTest  ,
ParsesEmptyCommandLine   
)

Definition at line 128 of file gmock_test.cc.

128 {
129 const wchar_t* argv[] = {L"foo.exe", nullptr};
130
131 const wchar_t* new_argv[] = {L"foo.exe", nullptr};
132
133 TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose));
134}

◆ TEST() [9/13]

TEST ( WideInitGoogleMockTest  ,
ParsesGoogleMockFlagAndUnrecognizedFlag   
)

Definition at line 165 of file gmock_test.cc.

165 {
166 const wchar_t* argv[] = {L"foo.exe", L"--non_gmock_flag=blah",
167 L"--gmock_verbose=error", nullptr};
168
169 const wchar_t* new_argv[] = {L"foo.exe", L"--non_gmock_flag=blah", nullptr};
170
171 TestInitGoogleMock(argv, new_argv, "error");
172}

◆ TEST() [10/13]

TEST ( WideInitGoogleMockTest  ,
ParsesInvalidCommandLine   
)

Definition at line 120 of file gmock_test.cc.

120 {
121 const wchar_t* argv[] = {nullptr};
122
123 const wchar_t* new_argv[] = {nullptr};
124
125 TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose));
126}

◆ TEST() [11/13]

TEST ( WideInitGoogleMockTest  ,
ParsesMultipleFlags   
)

Definition at line 144 of file gmock_test.cc.

144 {
145 int old_default_behavior = GMOCK_FLAG(default_mock_behavior);
146 const wchar_t* argv[] = {L"foo.exe", L"--gmock_verbose=info",
147 L"--gmock_default_mock_behavior=2", nullptr};
148
149 const wchar_t* new_argv[] = {L"foo.exe", nullptr};
150
151 TestInitGoogleMock(argv, new_argv, "info");
152 EXPECT_EQ(2, GMOCK_FLAG(default_mock_behavior));
153 EXPECT_NE(2, old_default_behavior);
154 GMOCK_FLAG(default_mock_behavior) = old_default_behavior;
155}

◆ TEST() [12/13]

TEST ( WideInitGoogleMockTest  ,
ParsesSingleFlag   
)

Definition at line 136 of file gmock_test.cc.

136 {
137 const wchar_t* argv[] = {L"foo.exe", L"--gmock_verbose=info", nullptr};
138
139 const wchar_t* new_argv[] = {L"foo.exe", nullptr};
140
141 TestInitGoogleMock(argv, new_argv, "info");
142}

◆ TEST() [13/13]

TEST ( WideInitGoogleMockTest  ,
ParsesUnrecognizedFlag   
)

Definition at line 157 of file gmock_test.cc.

157 {
158 const wchar_t* argv[] = {L"foo.exe", L"--non_gmock_flag=blah", nullptr};
159
160 const wchar_t* new_argv[] = {L"foo.exe", L"--non_gmock_flag=blah", nullptr};
161
162 TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose));
163}

◆ TestInitGoogleMock()

template<typename Char , int M, int N>
void TestInitGoogleMock ( const Char *(&)  argv[M],
const Char *(&)  new_argv[N],
const ::std::string &  expected_gmock_verbose 
)

Definition at line 50 of file gmock_test.cc.

51 {
52 const ::std::string old_verbose = GMOCK_FLAG(verbose);
53
54 int argc = M - 1;
55 InitGoogleMock(&argc, const_cast<Char**>(argv));
56 ASSERT_EQ(N - 1, argc) << "The new argv has wrong number of elements.";
57
58 for (int i = 0; i < N; i++) {
59 EXPECT_STREQ(new_argv[i], argv[i]);
60 }
61
62 EXPECT_EQ(expected_gmock_verbose, GMOCK_FLAG(verbose).c_str());
63 GMOCK_FLAG(verbose) = old_verbose; // Restores the gmock_verbose flag.
64}
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:2073
#define EXPECT_STREQ(s1, s2)
Definition: gtest.h:2112
GTEST_API_ void InitGoogleMock(int *argc, char **argv)
Definition: gmock.cc:191