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
5// The test log collector uses Event Tracing for Windows to collect all LOG()
6// events at all levels (including all VLOG levels) from Chrome, Chrome Frame,
7// and the test executable itself for each test into a temporary log file.  At
8// the conclusion of each test, the contents of the log file are regurgitated to
9// stderr iff the test failed.  In any case, the log file is promptly deleted.
10//
11// Test executables that wish to benefit from the collector's features (to
12// produce verbose logs on test failure to aid in diagnosing flaky and/or
13// failing tests, for example) must install the collector via
14// |InstallTestLogCollector| before running tests (via RUN_ALL_TESTS(),
15// TestSuite::Run(), etc).
16
17#ifndef CHROME_TEST_LOGGING_WIN_TEST_LOG_COLLECTOR_H_
18#define CHROME_TEST_LOGGING_WIN_TEST_LOG_COLLECTOR_H_
19
20namespace testing {
21class UnitTest;
22}
23
24namespace logging_win {
25
26// Installs the test log collector into |unit_test| for its lifetime.
27// (Use testing::UnitTest::GetInstance() to get the process-wide unit test
28// instance.)
29void InstallTestLogCollector(testing::UnitTest* unit_test);
30
31}  // namespace logging_win
32
33#endif  // CHROME_TEST_LOGGING_WIN_TEST_LOG_COLLECTOR_H_
34