147d431f63a66505a645f282416659a9758a91f1cBrett Chabot// Copyright 2013 The Chromium Authors. All rights reserved.
247d431f63a66505a645f282416659a9758a91f1cBrett Chabot// Use of this source code is governed by a BSD-style license that can be
347d431f63a66505a645f282416659a9758a91f1cBrett Chabot// found in the LICENSE file.
447d431f63a66505a645f282416659a9758a91f1cBrett Chabot
547d431f63a66505a645f282416659a9758a91f1cBrett Chabot#include "base/at_exit.h"
647d431f63a66505a645f282416659a9758a91f1cBrett Chabot#include "base/bind.h"
747d431f63a66505a645f282416659a9758a91f1cBrett Chabot#include "base/test/launcher/unit_test_launcher.h"
847d431f63a66505a645f282416659a9758a91f1cBrett Chabot#include "base/test/test_suite.h"
947d431f63a66505a645f282416659a9758a91f1cBrett Chabot
1047d431f63a66505a645f282416659a9758a91f1cBrett Chabot#if defined(OS_ANDROID)
1147d431f63a66505a645f282416659a9758a91f1cBrett Chabot#include "base/android/jni_android.h"
1247d431f63a66505a645f282416659a9758a91f1cBrett Chabot#include "base/test/test_file_util.h"
1347d431f63a66505a645f282416659a9758a91f1cBrett Chabot#endif
1447d431f63a66505a645f282416659a9758a91f1cBrett Chabot
1547d431f63a66505a645f282416659a9758a91f1cBrett Chabotnamespace {
1647d431f63a66505a645f282416659a9758a91f1cBrett Chabot
1747d431f63a66505a645f282416659a9758a91f1cBrett Chabotclass NoAtExitBaseTestSuite : public base::TestSuite {
1847d431f63a66505a645f282416659a9758a91f1cBrett Chabot public:
1947d431f63a66505a645f282416659a9758a91f1cBrett Chabot  NoAtExitBaseTestSuite(int argc, char** argv)
2047d431f63a66505a645f282416659a9758a91f1cBrett Chabot      : base::TestSuite(argc, argv, false) {
2147d431f63a66505a645f282416659a9758a91f1cBrett Chabot  }
2247d431f63a66505a645f282416659a9758a91f1cBrett Chabot};
2347d431f63a66505a645f282416659a9758a91f1cBrett Chabot
2447d431f63a66505a645f282416659a9758a91f1cBrett Chabotint RunTestSuite(int argc, char** argv) {
2547d431f63a66505a645f282416659a9758a91f1cBrett Chabot  return NoAtExitBaseTestSuite(argc, argv).Run();
2647d431f63a66505a645f282416659a9758a91f1cBrett Chabot}
2747d431f63a66505a645f282416659a9758a91f1cBrett Chabot
2847d431f63a66505a645f282416659a9758a91f1cBrett Chabot}  // namespace
2947d431f63a66505a645f282416659a9758a91f1cBrett Chabot
3047d431f63a66505a645f282416659a9758a91f1cBrett Chabotint main(int argc, char** argv) {
3147d431f63a66505a645f282416659a9758a91f1cBrett Chabot#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