run_all_unittests.cc 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // Copyright (c) 2012 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. #include "base/bind.h"
  5. #include "base/test/launcher/unit_test_launcher.h"
  6. #include "base/test/test_discardable_memory_allocator.h"
  7. #include "base/test/test_suite.h"
  8. #include "build/build_config.h"
  9. #include "media/base/fake_localized_strings.h"
  10. #include "media/base/media.h"
  11. #include "media/base/media_switches.h"
  12. #include "mojo/core/embedder/embedder.h"
  13. #if BUILDFLAG(IS_ANDROID)
  14. #include "media/base/android/media_codec_bridge_impl.h"
  15. #include "media/base/android/media_codec_util.h"
  16. #endif
  17. class TestSuiteNoAtExit : public base::TestSuite {
  18. public:
  19. TestSuiteNoAtExit(int argc, char** argv) : TestSuite(argc, argv) {}
  20. ~TestSuiteNoAtExit() override = default;
  21. protected:
  22. void Initialize() override;
  23. private:
  24. base::TestDiscardableMemoryAllocator discardable_memory_allocator_;
  25. };
  26. void TestSuiteNoAtExit::Initialize() {
  27. // Run TestSuite::Initialize first so that logging is initialized.
  28. base::TestSuite::Initialize();
  29. #if BUILDFLAG(IS_ANDROID)
  30. media::MediaCodecBridgeImpl::SetupCallbackHandlerForTesting();
  31. #endif
  32. // Run this here instead of main() to ensure an AtExitManager is already
  33. // present.
  34. media::InitializeMediaLibrary();
  35. media::SetUpFakeLocalizedStrings();
  36. base::DiscardableMemoryAllocator::SetInstance(&discardable_memory_allocator_);
  37. }
  38. int main(int argc, char** argv) {
  39. mojo::core::Init();
  40. TestSuiteNoAtExit test_suite(argc, argv);
  41. return base::LaunchUnitTests(
  42. argc, argv,
  43. base::BindOnce(&TestSuiteNoAtExit::Run, base::Unretained(&test_suite)));
  44. }