15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// found in the LICENSE file.
45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/at_exit.h"
65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/bind.h"
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/test/launcher/unit_test_launcher.h"
85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/test/test_suite.h"
903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "mojo/embedder/test_embedder.h"
105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#if defined(OS_ANDROID)
125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/android/jni_android.h"
135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/test/test_file_util.h"
145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#endif
155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace {
175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class NoAtExitBaseTestSuite : public base::TestSuite {
195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public:
205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  NoAtExitBaseTestSuite(int argc, char** argv)
215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      : base::TestSuite(argc, argv, false) {
225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  }
235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)};
245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)int RunTestSuite(int argc, char** argv) {
265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  return NoAtExitBaseTestSuite(argc, argv).Run();
275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}  // namespace
305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)int main(int argc, char** argv) {
3203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  mojo::embedder::test::InitWithSimplePlatformSupport();
335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#if defined(OS_ANDROID)
345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  JNIEnv* env = base::android::AttachCurrentThread();
356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  base::RegisterContentUriTestUtils(env);
365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#else
375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  base::AtExitManager at_exit;
385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#endif
395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  return base::LaunchUnitTestsSerially(argc,
405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                                       argv,
415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                                       base::Bind(&RunTestSuite, argc, argv));
425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
43