1c55a96383497a772a307b346368133960b02ad03Eric Laurent/*
2c55a96383497a772a307b346368133960b02ad03Eric Laurent *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3c55a96383497a772a307b346368133960b02ad03Eric Laurent *
4c55a96383497a772a307b346368133960b02ad03Eric Laurent *  Use of this source code is governed by a BSD-style license
5c55a96383497a772a307b346368133960b02ad03Eric Laurent *  that can be found in the LICENSE file in the root of the source
6c55a96383497a772a307b346368133960b02ad03Eric Laurent *  tree. An additional intellectual property rights grant can be found
7c55a96383497a772a307b346368133960b02ad03Eric Laurent *  in the file PATENTS.  All contributing project authors may
8c55a96383497a772a307b346368133960b02ad03Eric Laurent *  be found in the AUTHORS file in the root of the source tree.
9c55a96383497a772a307b346368133960b02ad03Eric Laurent */
10c55a96383497a772a307b346368133960b02ad03Eric Laurent
11c55a96383497a772a307b346368133960b02ad03Eric Laurent#ifndef TEST_TEST_SUITE_H_
12c55a96383497a772a307b346368133960b02ad03Eric Laurent#define TEST_TEST_SUITE_H_
13c55a96383497a772a307b346368133960b02ad03Eric Laurent
14c55a96383497a772a307b346368133960b02ad03Eric Laurent// Derived from Chromium's src/base/test/test_suite.h.
15c55a96383497a772a307b346368133960b02ad03Eric Laurent
16c55a96383497a772a307b346368133960b02ad03Eric Laurent// Defines a basic test suite framework for running gtest based tests.  You can
17c55a96383497a772a307b346368133960b02ad03Eric Laurent// instantiate this class in your main function and call its Run method to run
18c55a96383497a772a307b346368133960b02ad03Eric Laurent// any gtest based tests that are linked into your executable.
19c55a96383497a772a307b346368133960b02ad03Eric Laurent
20c55a96383497a772a307b346368133960b02ad03Eric Laurent#include "src/system_wrappers/interface/constructor_magic.h"
21c55a96383497a772a307b346368133960b02ad03Eric Laurent
22c55a96383497a772a307b346368133960b02ad03Eric Laurentnamespace webrtc {
23c55a96383497a772a307b346368133960b02ad03Eric Laurentnamespace test {
24c55a96383497a772a307b346368133960b02ad03Eric Laurentclass TestSuite {
25c55a96383497a772a307b346368133960b02ad03Eric Laurent public:
26c55a96383497a772a307b346368133960b02ad03Eric Laurent  TestSuite(int argc, char** argv);
27c55a96383497a772a307b346368133960b02ad03Eric Laurent  virtual ~TestSuite();
28c55a96383497a772a307b346368133960b02ad03Eric Laurent
29c55a96383497a772a307b346368133960b02ad03Eric Laurent  int Run();
30c55a96383497a772a307b346368133960b02ad03Eric Laurent
31c55a96383497a772a307b346368133960b02ad03Eric Laurent protected:
32c55a96383497a772a307b346368133960b02ad03Eric Laurent  // Override these for custom initialization and shutdown handling.  Use these
33c55a96383497a772a307b346368133960b02ad03Eric Laurent  // instead of putting complex code in your constructor/destructor.
34c55a96383497a772a307b346368133960b02ad03Eric Laurent  virtual void Initialize();
35c55a96383497a772a307b346368133960b02ad03Eric Laurent  virtual void Shutdown();
36c55a96383497a772a307b346368133960b02ad03Eric Laurent
37c55a96383497a772a307b346368133960b02ad03Eric Laurent  DISALLOW_COPY_AND_ASSIGN(TestSuite);
38c55a96383497a772a307b346368133960b02ad03Eric Laurent};
39c55a96383497a772a307b346368133960b02ad03Eric Laurent}  // namespace test
40c55a96383497a772a307b346368133960b02ad03Eric Laurent}  // namespace webrtc
41c55a96383497a772a307b346368133960b02ad03Eric Laurent
42c55a96383497a772a307b346368133960b02ad03Eric Laurent#endif  // TEST_TEST_SUITE_H_
43