37 using ::testing::EmptyTestEventListener;
39 using ::testing::Test;
40 using ::testing::TestEventListeners;
41 using ::testing::TestInfo;
42 using ::testing::TestPartResult;
43 using ::testing::UnitTest;
47 class TersePrinter :
public EmptyTestEventListener {
50 void OnTestProgramStart(
const UnitTest& )
override {}
53 void OnTestProgramEnd(
const UnitTest& unit_test)
override {
54 fprintf(stdout,
"TEST %s\n", unit_test.Passed() ?
"PASSED" :
"FAILED");
59 void OnTestStart(
const TestInfo& test_info)
override {
60 fprintf(stdout,
"*** Test %s.%s starting.\n", test_info.test_suite_name(),
66 void OnTestPartResult(
const TestPartResult& test_part_result)
override {
67 fprintf(stdout,
"%s in %s:%d\n%s\n",
68 test_part_result.failed() ?
"*** Failure" :
"Success",
69 test_part_result.file_name(), test_part_result.line_number(),
70 test_part_result.summary());
75 void OnTestEnd(
const TestInfo& test_info)
override {
76 fprintf(stdout,
"*** Test %s.%s ending.\n", test_info.test_suite_name(),
82 TEST(CustomOutputTest, PrintsMessage) {
83 printf(
"Printing something from the test body...\n");
86 TEST(CustomOutputTest, Succeeds) {
87 SUCCEED() <<
"SUCCEED() has been invoked from here";
90 TEST(CustomOutputTest, Fails) {
92 <<
"This test fails in order to demonstrate alternative failure messages";
96 int main(
int argc,
char** argv) {
99 bool terse_output =
false;
100 if (argc > 1 && strcmp(argv[1],
"--terse_output") == 0)
104 "Run this program with --terse_output to change the way "
105 "it prints its output.");
107 UnitTest& unit_test = *UnitTest::GetInstance();
112 TestEventListeners& listeners = unit_test.listeners();
118 delete listeners.Release(listeners.default_result_printer());
124 listeners.Append(
new TersePrinter);
130 int unexpectedly_failed_tests = 0;
131 for (
int i = 0;
i < unit_test.total_test_suite_count(); ++
i) {
134 const TestInfo& test_info = *test_suite.
GetTestInfo(j);
137 if (test_info.result()->Failed() &&
138 strcmp(test_info.name(),
"Fails") != 0) {
139 unexpectedly_failed_tests++;
145 if (unexpectedly_failed_tests == 0) ret_val = 0;
const TestInfo * GetTestInfo(int i) const
int total_test_count() const
#define TEST(test_suite_name, test_name)
#define EXPECT_EQ(val1, val2)
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
GTEST_API_ void InitGoogleTest(int *argc, char **argv)