15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
53551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "base/at_exit.h"
63551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "base/bind.h"
74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "base/test/launcher/unit_test_launcher.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/test/test_suite.h"
93551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#if defined(OS_ANDROID)
11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/android/jni_android.h"
12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/test/test_file_util.h"
13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif
14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
153551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)namespace {
163551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
173551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)class NoAtExitBaseTestSuite : public base::TestSuite {
183551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) public:
193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  NoAtExitBaseTestSuite(int argc, char** argv)
203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      : base::TestSuite(argc, argv, false) {
213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  }
223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)};
233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int RunTestSuite(int argc, char** argv) {
253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  return NoAtExitBaseTestSuite(argc, argv).Run();
263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}
273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}  // namespace
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int main(int argc, char** argv) {
31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#if defined(OS_ANDROID)
32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  JNIEnv* env = base::android::AttachCurrentThread();
336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  base::RegisterContentUriTestUtils(env);
34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#else
353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  base::AtExitManager at_exit;
363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif
373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  return base::LaunchUnitTests(argc,
383551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                               argv,
393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                               base::Bind(&RunTestSuite, argc, argv));
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
41