Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / media / base / run_all_perftests.cc
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/bind.h"
6 #include "base/test/launcher/unit_test_launcher.h"
7 #include "base/test/test_suite.h"
8 #include "build/build_config.h"
9 #include "media/base/media.h"
10
11 #if defined(OS_ANDROID)
12 #include "base/android/jni_android.h"
13 #include "media/base/android/media_jni_registrar.h"
14 #include "ui/gl/android/gl_jni_registrar.h"
15 #endif
16
17 class TestSuiteNoAtExit : public base::TestSuite {
18  public:
19   TestSuiteNoAtExit(int argc, char** argv) : TestSuite(argc, argv) {}
20   ~TestSuiteNoAtExit() override {}
21
22  protected:
23   void Initialize() override;
24 };
25
26 void TestSuiteNoAtExit::Initialize() {
27   // Run TestSuite::Initialize first so that logging is initialized.
28   base::TestSuite::Initialize();
29
30 #if defined(OS_ANDROID)
31   // Register JNI bindings for android.
32   JNIEnv* env = base::android::AttachCurrentThread();
33   // Needed for surface texture support.
34   ui::gl::android::RegisterJni(env);
35   media::RegisterJni(env);
36 #endif
37
38   // Run this here instead of main() to ensure an AtExitManager is already
39   // present.
40   media::InitializeMediaLibraryForTesting();
41 }
42
43 int main(int argc, char** argv) {
44   TestSuiteNoAtExit test_suite(argc, argv);
45
46   // Always run the perf tests serially, to avoid distorting
47   // perf measurements with randomness resulting from running
48   // in parallel.
49   return base::LaunchUnitTestsSerially(
50       argc, argv, base::Bind(&TestSuiteNoAtExit::Run,
51                              base::Unretained(&test_suite)));
52 }