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