1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "base/at_exit.h"
6#include "base/bind.h"
7#include "base/command_line.h"
8#include "base/test/launcher/unit_test_launcher.h"
9#include "base/test/test_suite.h"
10#include "testing/gmock/include/gmock/gmock.h"
11#include "testing/gtest/include/gtest/gtest.h"
12
13namespace {
14
15class NoAtExitBaseTestSuite : public base::TestSuite {
16 public:
17  NoAtExitBaseTestSuite(int argc, char** argv)
18      : base::TestSuite(argc, argv, false) {
19  }
20};
21
22int RunTestSuite(int argc, char** argv) {
23  return NoAtExitBaseTestSuite(argc, argv).Run();
24}
25
26}  // namespace
27
28int main(int argc, char** argv) {
29  // On Android, AtExitManager is created in
30  // testing/android/native_test_wrapper.cc before main() is called.
31  // The same thing is also done in base/test/test_suite.cc
32#if !defined(OS_ANDROID)
33  base::AtExitManager exit_manager;
34#endif
35  CommandLine::Init(argc, argv);
36  testing::InitGoogleMock(&argc, argv);
37  return base::LaunchUnitTests(argc,
38                               argv,
39                               base::Bind(&RunTestSuite, argc, argv));
40}
41