35#include "gtest/gtest.h"
37using ::testing::EmptyTestEventListener;
38using ::testing::InitGoogleTest;
40using ::testing::TestEventListeners;
41using ::testing::TestInfo;
42using ::testing::TestPartResult;
43using ::testing::TestSuite;
44using ::testing::UnitTest;
48class TersePrinter :
public EmptyTestEventListener {
51 void OnTestProgramStart(
const UnitTest& )
override {}
54 void OnTestProgramEnd(
const UnitTest& unit_test)
override {
55 fprintf(stdout,
"TEST %s\n", unit_test.Passed() ?
"PASSED" :
"FAILED");
60 void OnTestStart(
const TestInfo& test_info)
override {
61 fprintf(stdout,
"*** Test %s.%s starting.\n", test_info.test_suite_name(),
67 void OnTestPartResult(
const TestPartResult& test_part_result)
override {
68 fprintf(stdout,
"%s in %s:%d\n%s\n",
69 test_part_result.failed() ?
"*** Failure" :
"Success",
70 test_part_result.file_name(), test_part_result.line_number(),
71 test_part_result.summary());
76 void OnTestEnd(
const TestInfo& test_info)
override {
77 fprintf(stdout,
"*** Test %s.%s ending.\n", test_info.test_suite_name(),
83TEST(CustomOutputTest, PrintsMessage) {
84 printf(
"Printing something from the test body...\n");
87TEST(CustomOutputTest, Succeeds) {
88 SUCCEED() <<
"SUCCEED() has been invoked from here";
91TEST(CustomOutputTest, Fails) {
93 <<
"This test fails in order to demonstrate alternative failure messages";
97int main(
int argc,
char** argv) {
98 InitGoogleTest(&argc, argv);
100 bool terse_output =
false;
101 if (argc > 1 && strcmp(argv[1],
"--terse_output") == 0)
105 "Run this program with --terse_output to change the way "
106 "it prints its output.");
108 UnitTest& unit_test = *UnitTest::GetInstance();
113 TestEventListeners& listeners = unit_test.listeners();
119 delete listeners.Release(listeners.default_result_printer());
125 listeners.Append(
new TersePrinter);
127 int ret_val = RUN_ALL_TESTS();
131 int unexpectedly_failed_tests = 0;
132 for (
int i = 0; i < unit_test.total_test_suite_count(); ++i) {
133 const testing::TestSuite& test_suite = *unit_test.GetTestSuite(i);
134 for (
int j = 0; j < test_suite.total_test_count(); ++j) {
135 const TestInfo& test_info = *test_suite.GetTestInfo(j);
138 if (test_info.result()->Failed() &&
139 strcmp(test_info.name(),
"Fails") != 0) {
140 unexpectedly_failed_tests++;
146 if (unexpectedly_failed_tests == 0) ret_val = 0;
97int main(
int argc,
char** argv) {
…}
TEST(ComponentParameterTest, ParameterTest)
int main(int argc, char **argv)