1// Copyright (c) 2013 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 "ui/compositor/test/test_suite.h"
9
10namespace {
11
12#if !defined(USE_AURA)
13class NoAtExitBaseTestSuite : public base::TestSuite {
14 public:
15  NoAtExitBaseTestSuite(int argc, char** argv)
16      : base::TestSuite(argc, argv, false) {
17  }
18};
19
20int RunTestSuite(int argc, char** argv) {
21  return NoAtExitBaseTestSuite(argc, argv).Run();
22}
23#endif  // !defined(USE_AURA)
24
25}  // namespace
26
27int main(int argc, char** argv) {
28#if defined(USE_AURA)
29  ui::test::CompositorTestSuite test_suite(argc, argv);
30
31  return base::LaunchUnitTests(
32      argc, argv, base::Bind(&ui::test::CompositorTestSuite::Run,
33                             base::Unretained(&test_suite)));
34#else
35
36#if !defined(OS_ANDROID)
37  base::AtExitManager at_exit;
38#endif
39  return base::LaunchUnitTests(argc,
40                               argv,
41                               base::Bind(&RunTestSuite, argc, argv));
42#endif
43}
44