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