Make unittest log printouts opt-in with a --logs flag.

TESTED=Using modules_unittests, no logs are printed by default.
Specifying --logs prints logs. gtest flags work correctly.

R=henrike@webrtc.org, kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2181004

git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@4686 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/test/test.gyp b/test/test.gyp
index 31ba4ea..4e01b25 100644
--- a/test/test.gyp
+++ b/test/test.gyp
@@ -47,6 +47,7 @@
       'dependencies': [
         '<(DEPTH)/testing/gtest.gyp:gtest',
         '<(DEPTH)/testing/gmock.gyp:gmock',
+        '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
         '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
       ],
       'sources': [
diff --git a/test/test_suite.cc b/test/test_suite.cc
index 2ef305b..1917605 100644
--- a/test/test_suite.cc
+++ b/test/test_suite.cc
@@ -10,11 +10,14 @@
 
 #include "webrtc/test/test_suite.h"
 
+#include "gflags/gflags.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "webrtc/test/testsupport/fileutils.h"
 #include "webrtc/test/testsupport/trace_to_stderr.h"
 
+DEFINE_bool(logs, false, "print logs to stderr");
+
 namespace webrtc {
 namespace test {
 
@@ -22,6 +25,9 @@
     : trace_to_stderr_(NULL) {
   SetExecutablePath(argv[0]);
   testing::InitGoogleMock(&argc, argv);  // Runs InitGoogleTest() internally.
+  // ParseCommandLineFlags fails on unrecognized flags. Call it last so that
+  // any flags inteded for gtest are already filtered out.
+  google::ParseCommandLineFlags(&argc, &argv, true);
 }
 
 TestSuite::~TestSuite() {
@@ -35,8 +41,8 @@
 }
 
 void TestSuite::Initialize() {
-  // Create TraceToStderr here so the behavior can be overridden.
-  trace_to_stderr_.reset(new TraceToStderr);
+  if (FLAGS_logs)
+    trace_to_stderr_.reset(new TraceToStderr);
 }
 
 void TestSuite::Shutdown() {