blob: e88b0301a2b95d424c7e337786f4811bb5b3b32d [file] [log] [blame]
andrew@webrtc.org19eefdc2011-09-14 17:02:44 +00001/*
2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
andrew@webrtc.orgb87cc852013-03-25 16:23:37 +000011#include "webrtc/test/test_suite.h"
andrew@webrtc.orgc1ffd332013-03-22 17:13:23 +000012
andrew@webrtc.orgaa3d1c82013-09-05 21:16:29 +000013#include "gflags/gflags.h"
andrew@webrtc.orgc1ffd332013-03-22 17:13:23 +000014#include "testing/gmock/include/gmock/gmock.h"
15#include "testing/gtest/include/gtest/gtest.h"
andrew@webrtc.orgb87cc852013-03-25 16:23:37 +000016#include "webrtc/test/testsupport/fileutils.h"
17#include "webrtc/test/testsupport/trace_to_stderr.h"
andresp@webrtc.org60015d22014-05-16 09:39:51 +000018#include "webrtc/test/field_trial.h"
andrew@webrtc.org19eefdc2011-09-14 17:02:44 +000019
andrew@webrtc.orgaa3d1c82013-09-05 21:16:29 +000020DEFINE_bool(logs, false, "print logs to stderr");
21
andresp@webrtc.org60015d22014-05-16 09:39:51 +000022DEFINE_string(force_fieldtrials, "",
23 "Field trials control experimental feature code which can be forced. "
24 "E.g. running with --force_fieldtrials=WebRTC-FooFeature/Enable/"
25 " will assign the group Enable to field trial WebRTC-FooFeature.");
26
andrew@webrtc.org19eefdc2011-09-14 17:02:44 +000027namespace webrtc {
kjellander@webrtc.org20a370e2011-11-04 01:19:16 +000028namespace test {
kjellander@webrtc.org83b767b2012-10-15 18:14:12 +000029
andrew@webrtc.org31628aa2013-10-22 12:50:00 +000030TestSuite::TestSuite(int argc, char** argv) {
kjellander@webrtc.org193600b2012-10-17 04:39:44 +000031 SetExecutablePath(argv[0]);
kjellander@webrtc.org20a370e2011-11-04 01:19:16 +000032 testing::InitGoogleMock(&argc, argv); // Runs InitGoogleTest() internally.
andrew@webrtc.org15e979b2013-09-17 00:54:09 +000033 // AllowCommandLineParsing allows us to ignore flags passed on to us by
34 // Chromium build bots without having to explicitly disable them.
35 google::AllowCommandLineReparsing();
andrew@webrtc.orgaa3d1c82013-09-05 21:16:29 +000036 google::ParseCommandLineFlags(&argc, &argv, true);
andresp@webrtc.org60015d22014-05-16 09:39:51 +000037
38 webrtc::test::InitFieldTrialsFromString(FLAGS_force_fieldtrials);
andrew@webrtc.org19eefdc2011-09-14 17:02:44 +000039}
40
41TestSuite::~TestSuite() {
42}
43
44int TestSuite::Run() {
45 Initialize();
46 int result = RUN_ALL_TESTS();
47 Shutdown();
48 return result;
49}
50
51void TestSuite::Initialize() {
andrew@webrtc.orgaa3d1c82013-09-05 21:16:29 +000052 if (FLAGS_logs)
53 trace_to_stderr_.reset(new TraceToStderr);
andrew@webrtc.org19eefdc2011-09-14 17:02:44 +000054}
55
56void TestSuite::Shutdown() {
57}
andrew@webrtc.orgc1ffd332013-03-22 17:13:23 +000058
kjellander@webrtc.org20a370e2011-11-04 01:19:16 +000059} // namespace test
andrew@webrtc.org19eefdc2011-09-14 17:02:44 +000060} // namespace webrtc