1// Copyright 2013 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/test/launcher/unit_test_launcher.h"
8#include "base/test/test_suite.h"
9
10#if defined(OS_ANDROID)
11#include "base/android/jni_android.h"
12#include "base/test/test_file_util.h"
13#endif
14
15namespace {
16
17class NoAtExitBaseTestSuite : public base::TestSuite {
18 public:
19  NoAtExitBaseTestSuite(int argc, char** argv)
20      : base::TestSuite(argc, argv, false) {
21  }
22};
23
24int RunTestSuite(int argc, char** argv) {
25  return NoAtExitBaseTestSuite(argc, argv).Run();
26}
27
28}  // namespace
29
30int main(int argc, char** argv) {
31#if defined(OS_ANDROID)
32  JNIEnv* env = base::android::AttachCurrentThread();
33  base::RegisterContentUriTestUtils(env);
34#else
35  base::AtExitManager at_exit;
36#endif
37  return base::LaunchUnitTestsSerially(argc,
38                                       argv,
39                                       base::Bind(&RunTestSuite, argc, argv));
40}
41