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) 558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "base/bind.h" 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/command_line.h" 74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "base/test/launcher/unit_test_launcher.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/test/test_suite.h" 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "build/build_config.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "media/base/media.h" 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "media/base/media_switches.h" 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if defined(OS_ANDROID) 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/android/jni_android.h" 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "media/base/android/media_jni_registrar.h" 16424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#include "ui/gl/android/gl_jni_registrar.h" 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class TestSuiteNoAtExit : public base::TestSuite { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestSuiteNoAtExit(int argc, char** argv) : TestSuite(argc, argv) {} 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~TestSuiteNoAtExit() {} 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void Initialize() OVERRIDE; 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestSuiteNoAtExit::Initialize() { 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Run TestSuite::Initialize first so that logging is initialized. 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::TestSuite::Initialize(); 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci command_line->AppendSwitch(switches::kEnableInbandTextTracks); 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if defined(OS_ANDROID) 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Register JNI bindings for android. 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) JNIEnv* env = base::android::AttachCurrentThread(); 37424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) // Needed for surface texture support. 38424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) ui::gl::android::RegisterJni(env); 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) media::RegisterJni(env); 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Run this here instead of main() to ensure an AtExitManager is already 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // present. 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) media::InitializeMediaLibraryForTesting(); 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int main(int argc, char** argv) { 4858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) TestSuiteNoAtExit test_suite(argc, argv); 4958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return base::LaunchUnitTests( 5158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) argc, argv, base::Bind(&TestSuiteNoAtExit::Run, 5258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) base::Unretained(&test_suite))); 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 54