From 3a47ddf8ea888b4e5fe06bf79ef03a1456274f00 Mon Sep 17 00:00:00 2001 From: "zhanyong.wan" Date: Wed, 15 Jul 2009 19:01:51 +0000 Subject: [PATCH] Makes gtest report failures to Visual Studio's Output window. Based on code by Alexander Demin. --- src/gtest.cc | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/gtest.cc b/src/gtest.cc index 7bdf18ad..bc970173 100644 --- a/src/gtest.cc +++ b/src/gtest.cc @@ -2556,10 +2556,19 @@ static internal::String PrintTestPartResultToString( } // Prints a TestPartResult. -static void PrintTestPartResult( - const TestPartResult& test_part_result) { - printf("%s\n", PrintTestPartResultToString(test_part_result).c_str()); +static void PrintTestPartResult(const TestPartResult& test_part_result) { + const internal::String& result = + PrintTestPartResultToString(test_part_result); + printf("%s\n", result.c_str()); fflush(stdout); +#if GTEST_OS_WINDOWS + // If the test program runs in Visual Studio or a debugger, the + // following states add the test part result message to the Output + // window such that the user can double-click on it to jump to the + // corresponding source code location; otherwise they do nothing. + ::OutputDebugStringA(result.c_str()); + ::OutputDebugStringA("\n"); +#endif } // class PrettyUnitTestResultPrinter @@ -3426,7 +3435,8 @@ void UnitTest::AddTestPartResult(TestPartResultType result_type, for (int i = 0; i < impl_->gtest_trace_stack()->size(); i++) { const internal::TraceInfo& trace = impl_->gtest_trace_stack()->GetElement(i); - msg << "\n" << trace.file << ":" << trace.line << ": " << trace.message; + msg << "\n" << internal::FormatFileLocation(trace.file, trace.line) + << " " << trace.message; } }